VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • Day1:初识Python

一.初识命令行

pwd:打印当前工作目录;     

hostname:获取我的计算机的网络名称;

mkdir:创建目录;         

cd:更改目录;       

ls:列出目录下的文件;

rmdir:删除目录;         

pushd@popd:记录我的位置并前往...&返回之前的位置

cp:复制文件或目录;         

robocopy:更强大的复制

mv:移动/重命名文件或目录     

more:按页查看文件

type:输出整个文件         

forfiles:对大量文件执行一个操作

dir -r:查找文件         

select-string:查找文件里面的东西

help:阅读帮助手册         

echo:输出一些参数         

set:设置一个新的环境变量

exit:退出终端

 

Tip:

cd ~返回home目录(注意有空格)

cd\返回磁盘根目录(以进入另一磁盘);

cd..返回上级目录

New-Item生成一个新文件(通过扩展名生成不同类型的文件)

其他诸如cat、rm……,使用过程中慢慢了解慢慢掌握~

 

二.Python第一课

2.1    安装与HelloWorld

Pycharm安装与首次设置

2.2 变量

为了后面调用而将某些内容存储起来

- 变量名只能是 字母、数字或下划线的组合且第一个字符不能是数字

- 部分关键字不能声明为变量名如and、break、class……

- 常量约定用全大写如PAI=3.14159……

2.3 字符编码

ASCII:最初编码,占用127个(共255个位置),存储了数字、大小写字母及特殊字符等;1bytes

剩余位置无法满足中文需求,GB2312(1980),存储6000+汉字与600+其它符号共7000+字符;后来发现不够,95年扩展出GBK1.0收录21000+符号;00年扩展至GB18030,收录了少数民族文字等27000+;当前常用GBK

考虑各国情况,推出Unicode(万国码),2bytes

考虑内存,推出可变长的字符编码 UTF-8 en:1bytes cn:3bytes

注释:

当行注释: # 被注释内容

多行注释: ‘’’  多行内容 ‘’’   

2.4 用户输入-interaction.py

input(“提示语”)

格式化输出:

1.字符串拼接

2.%s、%d、%f占位符

3..format

2.5 if else流程判断-passwd.py/guess.py

Tip:密码用密文,可直接调用python标准库 import getpass

认证名称密码是否正确,判断语句

Python强制缩进:省略掉了结束符

复制代码
 1 import getpass
 2 
 3 _username = "SJC"
 4 _password = "abc123"
 5 username = input("username:")
 6 password = input("password:")
 7 
 8 if _username == username and _password == password:
 9     print("Welcome user {name} login...".format(name=username))
10 else:
11     print("Invalid username or password!")
复制代码
复制代码
1 age_of_oldboy = 56
2 
3 guess_age = int(input("guess age:"))
4 if guess_age == age_of_oldboy:
5     print("yes, you got it!")
6 elif guess_age > age_of_oldboy:
7     print("think smaller...")
8 else:
9     print("think bigger...")
复制代码

2.6 循环-while循环-while.py/guess2.py 

改进guess.py使之可以重复输入并限定输入次数:

 guess2

改进guess2.py使之可以选择在限定次数后继续游戏:

复制代码
age = 25
count = 0
while count <3:
    _age = int(input("guess age:"))
    if _age == age:
        print("Yes,you got it!")
        break
    elif _age > age:
        print("Think smaller...")
    else:
        print("Think bigger...")
    count +=1
    if count == 3:
        continue_confirm = input("Do you want to continue?")
        if continue_confirm != "N":
            count = 0
复制代码

for循环-guess2.py/guess for.py

复制代码
 1 age = 25
 2 count = 0
 3 for i in range(3):
 4     _age = int(input("guess age:"))
 5     if _age == age:
 6         print("Yes,you got it!")
 7         break
 8     elif _age > age:
 9         print("Think smaller...")
10     else:
11         print("Think bigger...")
12 else:
13     print("You have tried too mant times...")
复制代码

for-步长:range(0,10,3)-从0至10且步长为3(即间隔两个),range(10)则表示从0-10且步长为1

continue-跳出本次循环并进入下一次循环 break-跳出整个循环(可打断点debug run看数据流) pass-不做任何事情,一般用做占位语句

2.7 模块(库)初识

标准库:不需安装可直接导用的库

sys: sys.path ; sys.argv

os: 与系统交互 os.system/os.popen

复制代码
1 '''
2 import sys
3 #print(sys.path) #打印环境变量
4 print(sys.argv)
5 '''
6 import os
7 # cmd_res = os.system("dir") # 执行命令不保存结果
8 cmd_res = os.popen("dir").read() # 执行命令保存结果至某地方,需要read将结果取出来,否则输出一个内存地址
9 print("--->", cmd_res)
复制代码

第三方库:需要下载安装才可使用的库

调用模块时,先从当前目录下找;若找不到,再到全局变量里寻找;再找不到,则会报错找不到模块

pyc是什么:

 

当我们对某个已经运行过的程序代码进行修改时,运行它会去找pyc文件,岂不是导致修改无效?不会,运行时会先对pyc文件的时间和修改时间进行判断,选择最新的执行。

2.8 数据类型

Python数据类型
int 整型
long

长整型

(python3已取消)

float 浮点型
complex 复数
bool

布尔值

(真或假/1或0)

str

字符串

 

2.9 拾遗

三元运算

result = 值1 if  条件 else 值2

进制

二进制十进制(除二取余,逆序排列);二进制十六进制(四位一组,分别对应)

bytes类型

Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。

    decode二进制转字符串(解码);encode字符串转二进制(编码)

三.练习-预习一部分内容并结合所学完成

3.1 编写登录接口(·输入用户名密码;·认证成功后显示欢迎信息;·输错三次后锁定)

初版:

进阶版(有多个用户;输入三次错误密码后用户锁定,重启程序后该用户仍是锁定状态;判定某用户名是否存在,不存在则弹出提示):

 

复制代码
 1 import sys
 2 
 3 _username = ['ZYH', 'FKK', 'ZJL', 'WK', 'WRR', 'SJC']   # 用户名表
 4 _password = ['123', '456', '789', '147', '258', '369']  # 密码表  (需要与用户名一一对应,不如嵌套)
 5 blacklist = []  # 空表,后续用作黑名单
 6 f = open("blacklist.txt", 'a+')
 7 f.seek(0)
 8 for line in f.readlines():
 9     line = line.strip('\n')
10     blacklist.append(line)
11 count = 0
12 while True:     # 死循环
13     username = input("Please input your username:")
14     if username in _username:   # 用户是否存在
15         if username in blacklist:   # 用户是否在黑名单
16             print(f"User {username} has been locked, please contact administrator to unlock.")
17             sys.exit()
18         else:   # 用户不在黑名单
19             while count < 3:    # 输入三次及以下时
20                 password = input("Please input your password:")
21                 i = _username.index(username)   # 索引用户名位置
22                 if password == _password[i]:    # 密码是否正确
23                     print(f"Welcome you, {username}!")
24                     break
25                 else:   # 密码不正确
26                     count += 1  # 计数
27                     print(f"Wrong password, you have another {3-count} chance.")    # 提示
28             else:   # 连续输错三次
29                 f.write(username)   # 用户名加入黑名单
30                 f.write('\n')
31                 f.close()
32                 print("Too many times of wrong password, user locked")
33         break
34     else:
35         print("User doesn't exist, please input again.")
复制代码

 

 

3.2 多级菜单(·三级菜单;可依次选择进入各子菜单;·所需新知识点:列表、字典):

 

复制代码
 1 import  sys
 2 
 3 data = {
 4     "北京": {
 5         "海淀": {
 6             "海1路": ["中央财经大学", "中央民族大学", "中国人民大学"],
 7             "五道口": ["清华大学", "中国矿业大学", "中国地质大学"]
 8         },
 9         "房山": {
10             "房1路": ["北京工商大学", "首都师范大学"],
11             "房2路": ["大学1号", "大学2号"]
12         }
13     },
14     "河北": {
15         "石家庄": {
16             "石1路": ["河北经贸大学", "石家庄铁道大学"],
17             "石2路": ["河北大学", "河北师范大学"]
18         },
19         "保定": {
20             "保1路": ["华北电力大学", "河北科技大学"],
21             "保2路": ["华北理工大学", "保定师范学院"]
22         }
23     },
24     "上海": {
25         "上1区":{
26             "1区1号": ["上海交通大学", "上海财经大学"],
27             "1区2号": ["大学3号", "大学4号"]
28         },
29         "上2区": {
30             "2区1号": ["上海师范大学", "上海理工大学"],
31             "2区2号": ["大学5号", "大学6号"]
32         }
33     }
34 }
35 
36 while True:
37     for i in data:
38         print(i)                                         # 打印第一级菜单(一级key)
39     choice1 = input(">>>输入名称进入下一级,输入b返回,输入q退出:")               # 选择进入
40     if choice1 in data:                                  # 输入在字典中
41         while True:                                      # 进入下一层且只要不退出不进入下一层则一直在此层停留,故仍需一个死循环
42             for i1 in data[choice1]:
43                 print('\t', i1)                                # 打印第二级菜单(二级key)
44             choice2 = input(">>>输入名称进入下一级,输入b返回,输入q退出:")        # 选择进入
45             if choice2 in data[choice1]:                             # 输入在字典中
46                 while True:                               # 进入下一层且只要不退出不进入下一层则一直在此层停留,故仍需一个死循环
47                     for i2 in data[choice1][choice2]:
48                         print('\t\t', i2)                                # 打印第三级菜单(三级key)
49                     choice3 = input(">>>输入名称进入最后一级,输入b返回,输入q退出):")  # 选择进入
50                     if choice3 in data[choice1][choice2]:
51                         while True:                       # 进入下一层且只要不退出不进入下一层则一直在此层停留,故仍需一个死循环
52                             for i3 in data[choice1][choice2][choice3]:
53                                 print('\t\t\t', i3)                      # 打印最后一级菜单
54                             choice4 = input(">>>最后一层,输入b返回,输入q退出:")
55                             if choice4 == 'b':
56                                 break
57                             elif choice4 == 'q':
58                                 sys.exit()
59                             else:
60                                 print("输入错误,请重新输入")
61                     elif choice3 == 'b':    # 如果此处直接用if,跳出上方循环后会顺序执行此处语句,输入b会有错误,用elif则直接进入上级下一次循环
62                         break
63                     elif choice3 == 'q':
64                         sys.exit()
65                     else:
66                         print("输入错误,请重新输入")
67             elif choice2 == 'b':
68                 break
69             elif choice2 == 'q':
70                 sys.exit()
71             else:
72                 print("输入错误,请重新输入")
73     elif choice1 == 'q':
74         sys.exit()
75     else:
76         print("输入错误,请重新输入")
复制代码

 出处:

https://www.cnblogs.com/bitsjc/p/13612457.html

 


相关教程