pyhon3.0 基础01
1 python解释器
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
2 HelloWorld程序
如果想要类似于执行shell脚本一样执行python脚本,例: ./hello.py
,那么就需要在 hello.py 文件的头部指定解释器
#!/usr/bin/env python print("hello world")
3 变量
如果在python3中不用指定编码,在python2中需要指定
#_*_coding:utf-8_*_ name = "haha"
上述代码声明了一个变量,变量名为name 变量值为“”haha“”
变量的定义规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘
4 注释
当行注视:# 被注释内容
多行注释:""" 被注释内容 """
5 用户输入
#!/usr/bin/env python #_*_coding:utf-8_*_ #name = raw_input("What is your name?") #only on python 2.x name = input("What is your name?") print("Hello " + name )
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import getpass 5 6 # 将用户输入的内容赋值给 name 变量 7 pwd = getpass.getpass("请输入密码:") 8 9 # 打印输入的内容 10 print(pwd)
6 字符串格式化输出
三种字符串格式化输出方式:
1 #!/usr/bin/env python 2 name = input("name:") 3 age = input("age:") 4 job = input("job:") 5 salary = input("salary:") 6 7 info = ‘‘‘ 8 ========user info %s========= 9 name:%s 10 age:%d 11 job:%s 12 salary:%d 13 ‘‘‘ % (name, name, int(age), job, int(salary)) 14 print(info) 15 16 info2 = ‘‘‘ 17 ========user info {0}========= 18 name:{0} 19 age:{1} 20 job:{2} 21 salary:{3} 22 ‘‘‘.format(name, age, job, salary) 23 print(info2) 24 info3 = ‘‘‘ 25 ========user info {_name}========= 26 name:{_name} 27 age:{_age} 28 job:{_job} 29 salary:{_salary} 30 ‘‘‘.format(_name=name, _age=age, _job=job, _salary=salary) 31 print(info3)
7 表达式 if...else
场景一:用户登录验证
1 # 提示输入用户名和密码 2 3 # 验证用户名和密码 4 # 如果错误,则输出用户名或密码错误 5 # 如果成功,则输出 欢迎,XXX! 6 7 8 #!/usr/bin/env python 9 # -*- coding: encoding -*- 10 11 import getpass 12 13 14 name = raw_input(‘请输入用户名:‘) 15 pwd = getpass.getpass(‘请输入密码:‘) 16 17 if name == "alex" and pwd == "cmd": 18 print("欢迎,alex!") 19 else: 20 print("用户名和密码错误")
场景二:猜年龄游戏
在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 5 my_age = 28 6 7 user_input = int(input("input your guess num:")) 8 9 if user_input == my_age: 10 print("Congratulations, you got it !") 11 elif user_input < my_age: 12 print("Oops,think bigger!") 13 else: 14 print("think smaller!")
外层变量,可以被内层代码使用
8 表达式for...loop
简单循环10次
#_*_coding:utf-8_*_ __author__ = ‘Alex Li‘ for i in range(10): print("loop:", i )
1 loop: 0 2 loop: 1 3 loop: 2 4 loop: 3 5 loop: 4 6 loop: 5 7 loop: 6 8 loop: 7 9 loop: 8 10 loop: 9
需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
for i in range(10): if i<5: continue #不往下走了,直接进入下一次loop print("loop:", i )
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
1 for i in range(10): 2 if i>5: 3 break #不往下走了,直接跳出整个loop 4 print("loop:", i )
9 while...loop
海枯石烂代码
count = 0 while True: print("你是风儿我是沙,缠缠绵绵到天涯...",count) count +=1
其实除了时间,没有什么是永恒的,死loop还是少写为好
上面的代码循环100次就退出吧
count = 0 while True: print("你是风儿我是沙,缠缠绵绵到天涯...",count) count +=1 if count == 100: print("去你妈的风和沙,你们这些脱了裤子是人,穿上裤子是鬼的臭男人..") break
回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。
#!/usr/bin/env python # -*- coding: utf-8 -*- my_age = 28 count = 0 while count < 3: user_input = int(input("input your guess num:")) if user_input == my_age: print("Congratulations, you got it !") break elif user_input < my_age: print("Oops,think bigger!") else: print("think smaller!") count += 1 #每次loop 计数器+1 else: print("猜这么多次都不对,你个笨蛋.")
10 练习 实现登录并且失败三次锁定账号
1 #!/usr/bin/env python3 2 3 4 userFile = open("user.txt") # 保存用户名和密码 5 allUser = userFile.readlines() 6 userFile.close() 7 8 lockFile = open("lockFile.txt") # 保存被锁定的用户 9 lockUser = lockFile.readlines() 10 lockFile.close() 11 12 info = "============登录系统===============" 13 print(info) 14 15 loginCount = 0 16 userName = "" 17 18 while loginCount < 3: 19 userName = input("请输入用户名:") 20 if userName + "\n" in lockUser: 21 print(userName, "被锁定") 22 break 23 password = input("请输入密码:") 24 25 for line in allUser: 26 lineUser = line.split(" ")[0] 27 linePass = line.split(" ")[1].replace("\n", "") 28 if lineUser == userName and linePass == password: 29 print("登录成功") 30 loginCount = 4 31 break 32 else: 33 continue 34 else: 35 loginCount = loginCount + 1 36 37 if loginCount == 3: 38 print(userName, "超过三次被锁定!") 39 if userName + "\n" not in lockUser: 40 lockFile = open("lockFile.txt", "a") 41 lockFile.write(userName + "\n") 42 lockFile.flush() 43 lockFile.close() 44 45 if loginCount != 4 and loginCount != 3: 46 print("请再试一次")