昨日内容回顾
- 与用户交互
1.输入 input 在python3上述关键字获取到的用户输入都是字符串类型。 在python2上述关键字获取到的用户输入需要用户自己指定类型。 raw_input等价于python3里面的input。 2.输出 print 可以连续打印多个值,逗号隔开即可。
- 格式化输出
1.%s 任意类型占位符 'my name is %s'%'wkj' 'my name is %s my age is %s'%('wkj',22) 2.%d 数字系列 '%08d'
- 运算符
1.赋值运算符 name = 'wkj' 2.算术运算符 + - * / // % ** 有些数据类型也支持局部算术运算符 3.比较运算符 == != A-Z 65-90 a-z 97-122 4.逻辑运算符 and or not 三者混用有优先级的区别 但是不需要记忆 使用括号即可 5.增量赋值 x -= 1 x += 1 x *= 1 x /= 1 6.链式赋值 x = y = z = 1 7.交叉赋值 x, y = y, x 8.解压赋值 x,y = [1,2] 1.正常使用要保证左右两边变量名与值个数相等 2.非正常情况下可以使用*打破个数限制
今日内容概要
- 成员运算
- 身份运算
- 流程控制(重点)
1.if判断 2.while循环 3.for循环
今日内容详情
-
成员运算
1.in 判断在...里面 2. not in 取反 print('a' in 'hello world aaa') print('hello' in 'hello world aaa') print('wkj' in ['wkj', 'egon', 'kevin']) # 字典参与成员运算 只有key参加 value无法参与 print('wkj' in {'name': 'wkj', 'pwd': 123}) print('name' in {'name': 'wkj', 'pwd': 123})
-
身份运算
1.== 仅仅判断值是否相等 2.is 判断内存地址是否相等(id) l1 = ['wkj', 'egon', 'kevin'] l2 = ['wkj', 'egon', 'kevin'] # print(id(l1),id(l2)) print(l1 == l2) # True print(l1 is l2) # False """ 值相等内存地址不一定相等 内存地址相等值一定相等 """
-
流程控制
1.顺序结构 代码自上而下依次运行(我们之前所写的代码都是顺序结构) 2.分支结构 代码运行到某个节点之后根据条件的不同执行不同的代码(if判断) 3.循环结构 代码运行到某个节点之后一直重复执行某一段代码直到结束(while、for)
-
分支结构
""" 必备知识---代码缩进 1.在python中使用缩进来表示代码的从属关系,一般情况下我们采取四个空格来表示缩进(推荐)。 2.并不是所有的代码都可以拥有子代码,截至目前为止只有if可以拥有子代码。 3.同属于一个关键字的子代码必须要保持相同的缩进量。 ps:可以简单的记忆遇到冒号下面的代码必缩进 """ 例一、如果女孩子的年龄小于30岁,打印小姐姐。 girl_age = 58 if girl_age < 30: # if判断 print('小姐姐好') """ if 条件: 条件成立之后才会执行的代码 """ 例二、如果女孩子的年龄小于30岁,打印小姐姐,否则打印认错人了。 girl_age = 68 if girl_age < 30: print('小姐姐好') else: print('认错人了') """ if 条件: 代码1 代码2 ... else: 代码1 代码2 ... 如果条件成立则走if的子代码 如果条件不成立则走else的子代码 """ 例三、如果女孩子的年龄小于30岁,打印小姐姐,小于40随打印阿姨我不想努力了 小于50岁大宝贝,否则躺平。 girl_age = 28 if girl_age < 30: print('小姐姐') elif girl_age < 40: print('阿姨我不想努力了') elif girl_age < 50: print('大宝贝') else: print('躺平') """ if 条件1: 代码1 代码2 ... elif 条件2: 代码1 代码2 ... else: 代码1 代码2 ... 条件1成立 执行if的子代码 elif和else都不执行 条件2成立(说明条件1没有成立) 执行elif的子代码 if和else都不执行 如果条件都不成立 则走最后的else子代码 if和elif都不执行 elif可以写多个 """
-
分支结构补充
条件可以是一个,也可以是多个连接。 gender = 'female' age = 18 height = 165 is_beautiful = True if gender == 'female' and age < 22 and height > 155 and is_beautiful: print('吃饭看电影 天黑了') else: print('我有事先走了') if嵌套 gender = 'female' age = 18 height = 165 is_beautiful = True is_success = True if gender == 'female' and age < 22 and height > 155 and is_beautiful: print('能否加个微信认识一下?') if is_success: print('吃饭 散步 看电影 交流') else: print('你是个好人') else: print('我有事先走了') 成绩评判系统 """ 分数大于90 打印优秀 分数大于80 打印良好 分数大于70 打印一般 分数大于60 打印及格 分数小于60 打印挂科 """ score = int(input('score>>>:')) if score > 90: print('优秀') elif score > 80: print('良好') elif score > 70: print('一般') elif score > 60: print('及格') else: print('挂科') 例一、用户登录功能 1.获取用户的用户名和密码 username = input('username>>>:') password = input('password>>>:') # 2.判断用户名和密码是否正确 if username == 'wkj' and password == '123': print('老板好 来宾三位!') else: print('再见') 例二、3.根据星期的不同做出不同的动作 周一到周五划水 周六周日躺平 today = input('周几>>>:') if today in ('一','二','三','四','五'): print('划水') elif today in ('六','七'): print('躺平') else: print('见了鬼了')
-
循环结构
while True: # 1.获取用户的用户名和密码 username = input('username>>>:') password = input('password>>>:') # 2.判断用户名和密码是否正确 if username == 'jason' and password == '123': print('登录成功') else: print('用户名或密码错误') """ while 条件: 循环体代码1 循环体代码2 ... 当条件成立的情况下 会依次执行while子代码 子代码运行结束之后再次返回到条件处判断条件是否成立 如果成立继续执行 如果不成立则结束循环 """ while True: res = input('start>>>:') while True: # 1.获取用户的用户名和密码 username = input('username>>>:') password = input('password>>>:') # 2.判断用户名和密码是否正确 if username == 'jason' and password == '123': print('登录成功') # 结束循环 break # 结束离它最近的一个循环 本层循环 else: print('用户名或密码错误') break 循环打印1-10 除了数字7 count = 1 while count < 11: if count == 7: count += 1 # 跳过本次循环 开始下一次循环 continue print(count) # 让count自增1 count += 1 count = 1 while count < 11: if count == 7: break print(count) # 让count自增1 count += 1 else: print('当while没有被break主动结束的情况下自动结束了 则会走else')
-
循环嵌套
循环嵌套 while True: # 1.获取用户的用户名和密码 username = input('username>>>:') password = input('password>>>:') # 2.判断用户名和密码是否正确 if username == 'jason' and password == '123': print('登录成功') # 循环结构 while True: command = input('command>>>:') if command == 'q': break print('正在执行您的命令:%s'%command) break else: print('用户名或密码错误') 全局标志位 flag = True while flag: # 1.获取用户的用户名和密码 username = input('username>>>:') password = input('password>>>:') # 2.判断用户名和密码是否正确 if username == 'jason' and password == '123': print('登录成功') # 循环结构 while flag: command = input('command>>>:') if command == 'q': flag = False print('正在执行您的命令:%s'%command) else: print('用户名或密码错误')
-
for循环
for循环能够做到的事情while循环都可以做到,但是for循环使用起来比while更加的简单快捷。 例一、 name_list = ['jason','egon','kevin','tony'] print(len(name_list)) # 4 使用while循环将列表中的元素依次打印出来 count = 0 while count < len(name_list): print(name_list[count]) count += 1 for循环 for name in name_list: print(name) """ for 变量名 in 可迭代对象: # 看成是 字符串 列表 字典等类型 for循环的循环体代码 变量名如果你真的不知道起什么 一般都是以 i、j、item """ for i in 'hello world': # for循环字符串 将单个单个的字符依次赋值给变量名i print(i) for i in {'name':'jason','pwd':123}: # for循环字典 指挥依次拿到字典的key print(i) 例二、 打印0-10 count = 0 while count < 11: print(count) count += 1 for i in range(11): # range简单的看成是一个能够产生一个含有多个元素的列表 print(i) for i in range(1,11): # range简单的看成是一个能够产生一个含有多个元素的列表 print(i) """ range(起始位置,终止位置) 顾头不顾尾 """ """ range 在python3中 类似于是一个老母猪 需要值的时候才会给你 不需要的时候就不给 节省内存 在python2中 直接生成一个列表 不节省内存 xrange(10) 等价于 python3里面的range() """ break 例三、 for i in [1,2,3,4,5,6]: if i == 4: break # 结束本层for循环 与while+break一致 print(i) continue 例四、 for i in [1,2,3,4,5,6]: if i == 4: continue # 结束本次for循环 与while+continue一致 print(i) else for 循环正常结束之后走else 否则不走 与while+else一致 例五、 for i in range(5): if i == 3: break print(i) else: print('快结束了') # 九九乘法表 for i in range(1,10): for j in range(1,i+1): print('%s*%s=%s'%(i,j,i*j),end=' ') print()
-
作业
""" 1.猜年龄的游戏 1.必写 错误的情况下只能猜三次 正确的情况下直接推出游戏 2.拔高 三次错误之后提示用户三次机会已用完 问他是否继续 如果继续则再给三次机会 如果不继续则直接退出 """ import random print("---猜年龄游戏---") a = random.randint(1, 100) b = 1 flag = True while flag: x = int(input("请输入1-100之间的数字: ")) if x == a: print("恭喜!猜对了!") flag = False elif b < 3: b += 1 print("错了!") else: print("错了!") y = input("三次机会已用完,是否再来三次机会?(y/n): ") while True: if y == "y": b = 1 break elif y == "n": flag = False break else: y = input("请输入y/n: ") 自己在想到一些问题并进行完善后: import random print("---猜年龄游戏---") a = random.randint(1, 100) b = 1 flag = True while flag: try: x = int(input("请输入1-100之间的数字: ")) except: print("错误,只能输入数字,请重新输入!") else: if x > 100 or x < 0: print("超范围!只能输入1-100之间的整数!") elif x == a: print("恭喜!猜对了!") flag = False elif b < 3: b += 1 print("错了!") else: print("错了!") y = input("三次机会已用完,是否再来三次机会?(y/n): ") while True: if y == "y": b = 1 break elif y == "n": flag = False break else: y = input("只能输入y/n: ")