day 05
基本运算符
-
成员运算符
# in 在里面 # not in 取反 print('ycc' in 'hello ycc') # True print('ycc' in 'hellocc y') # False print('y' in 'ycc') #True #字典参与成员运算,只有key参加,value不参加 print('name' in {'name': 'ycc', 'age': 27}) # True print('ycc' in {'name': 'ycc', 'age': 27}) # False -
身份运算符
# is 比较左右两个值 身份id 是都相等 # == 比较左右两个值 他们的值 是否相等 l1 = ['ycc', 1217] l2 = ['ycc', 1217] print(l1 == l2) print(id(l1), id(l2)) # 输出结果:1899904406016 1899904260032 # 他们的值相等,但是他们的id不同 # id相等,他们的值一定相等
流程控制
-
顺序结构
代码自上而下依次运行 #例: print('ycc') print('aaa') print('xxx') -
分支结构
''' 必备知识: 代码缩进 在python中使用缩进来表示代码的从属关系 一般情况下我们采取4个空格来表示缩进(推荐) ps : 同时在python中,按Tab键可直接缩进4个空格,shift+Tab可往前缩进4个空格 并不是所有代码都拥有子代码 同属于一个关键字的子代码必须保持相同的的缩进量 ''' #如果女孩的年龄的小于30岁,我们则称之为小姐姐 inp_age = input('age is :') inp_age = int(inp_age) if inp_age < 30: print('小姐姐') ''' if 条件: 条件成立后才会运行此子代码 ''' #如果女孩的年龄小于30,我们叫小姐姐,否则叫老阿姨 inp_age = input('age is :') inp_age = int(inp_age) if inp_age < 30: print('小姐姐') else: print('老阿姨') ''' if 条件: 代码1 代码2 ... else: 代码1 代码2 ... if条件成立后运行if的子代码 如果if条件不成立则运行else的子代码 ''' # 如果女孩子的年龄小于30岁 打印小姐姐 小于40随打印阿姨我不想努力了 小于50岁老宝贝 否则躺平 inp_age = input('age is :') inp_age = int(inp_age) if inp_age < 30: print('小姐姐') elif inp_age < 40: print('阿姨我不想努力了') elif inp_age < 50: print('老baby') 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 oand is_beautiful: # print('能否加个微信认识一下?') # if is_success: # print('吃饭 散步 看电影 交流') # else: # print('你是个好人') # else: # print('我有事先走了') # 成绩评判系统 """ 分数大于90 打印优秀 分数大于80 打印良好 分数大于70 打印一般 分数大于60 打印及格 分数小于60 打印挂科 """ # score = input('score>>>:') # # 暂且先忽略 # score = int(score) # if score > 90: # print('优秀') # elif score > 80: # print('良好') # elif score > 70: # print('一般') # elif score > 60: # print('及格') # else: # print('挂科') # 2.用户登录功能 # 1.获取用户的用户名和密码 # username = input('username>>>:') # password = input('password>>>:') # # 2.判断用户名和密码是否正确 # if username == 'jason' and password == '123': # print('老板好 来宾三位!') # else: # print('去你妹的') # 3.根据星期的不同做出不同的动作 周一到周五划水 周六周日躺平 # today = input('周几>>>:') # if today in ('一','二','三','四','五'): # print('划水') # elif today in ('六','七'): # print('躺平') # else: # print('见了鬼了') -
循环结构
#循环结构之 while 循环 ''' while 条件: 循环体代码1 循环体代码2 ... 当while条件成立的情况下会一次运行循环体代码 子代码运行结束后再次返回至条件判断条件是否成立,如果成立则继续运行循环体代码 如果不成立则停止循环 ''' #登录:输入账号和密码,如果账号和密码正确,则登录成功,否则登录失败 #1.简单版 username = 'ycc' userpassword = '1217' while True: inp_username = input('please input your username : ') inp_userpassword = input('please input your userpassword : ') if inp_username == username and inp_userpassword == userpassword: print('账号登录成功') break else: print('账号或密码输入错误') break #2.复杂版(全局标志位) username = 'ycc' userpassword = '1217' tag = True while True: inp_username = input('please input your username : ') inp_userpassword = input('please input your userpassword : ') if inp_username == username and inp_userpassword == userpassword: print('账号登录成功') tag = False else: print('账号或密码输入错误') break # continue 与 break 的区别 # 1.循环打印1-10,除了7 continue count = 1 while count < 11: if count == 7: count += 1 continue print(count) count += 1 # 2. break count = 1 while count < 11: if count == 8: break print(count) count += 1 else: print('当while没有被break主动结束的情况下自动结束了 则会走else') -
循环嵌套
# 输入账号和密码,账号和密码输入正确则登录成功,输入错误3次则退出程序 # 如果登录成功则输入指令:q,如果指令输错3次则退出程序 username = 'ycc' userpwd = '1217' count = 0 while count < 3: inp_username = input('请输入账号 : ') inp_userpwd = input('请输入密码 : ') if inp_username == username and inp_userpwd == userpwd: print('账号登录成功') count1 = 0 while count1 <3: cmd = input('请输入指令: ') if cmd == 'q': print('指令正确') break else: print('指令{x}不正确'.format(x=cmd)) count1 += 1 break else: print('账号或密码错误') count += 1 -
for循环
#########一: ''' 什么是for循环 循环就是重复做某件事,for循环是python提供的第二种循环机制 为什么要有for循环 理论上for循环能做得,while循环也都能做 之所以要有for循环,是因为for循环取值比while循环取值更简洁 如何使用for循环 for 变量名 in 可迭代对象: # 可迭代对象可以是:列表、字典、元组、字符串、集合 ''' # 案例一:列表循环取值 # 简单版 l = ['qqq', 'aaa', 'vvv'] for x in l: print(x) # 列表 复杂版 l = ['qqq', 'aaa', 'vvv'] i = 0 while i < 3: print(l[i]) i += 1 # 案例二:字典循环取值 # 简单版 dic = {'k1': 'ycc', 'k2': 'xii', 'k3': 'Tracy'} for k in dic: # print(k) # 输出结果:k1 k2 k3 print(k, dic[k]) ''' 输出结果: k1 ycc k2 xii k3 Tracy ''' #复杂版: # 案例3:字符串循环 #简单版: msg = 'you can you up no can no bb' for x in msg: print(x) #复杂版: ''' 总结for循环与while循环的异同 1.相同之处:都是循环,for循环能做得,while循环都能做 2.不同之处: while循环称之为条件循环,循环的次数取决于条件何时为假 for循环称之为‘取值循环’,循环的次数取决于in后面包含的值的个数 例:[a, b, c]则循环3次 ''' for x in [1, 2, 3]: print("===>") print("ycc") ''' 运行结果: ===> ycc ===> ycc ===> ycc ''' for x in 'a c': # 空格也算一次,因此这里也是循环3次 inp_name = input('请输入您的账号:') inp_pwd = input('请输入您的密码:') ''' 输出结果: 请输入您的账号:aaa 请输入您的密码:ccc 请输入您的账号:aaa 请输入您的密码:ccc 请输入您的账号:a 请输入您的密码:c ''' #########二: # range 功能介绍 for x in range(30): # 0~29,循环30次 print("ycc") for x in range(1, 10): # 左闭右开,因此循环9次 print('ycc') for x in range(1, 10, 2): # 这里2代表步长为2, 意思即为取1, 3, 5, 7, 9 因此循环5次 print('xixi') # #循环3次退出程序 name = 'ycc' password = '121' for x in range(3): inp_username = input('please input your name: ') inp_password = input('please input your password: ') if inp_username == name and inp_password == password: print('账号登录成功') break else: print('账号或密码输入错误次数过多') #########三: # # range()知识点补充 # #1.for搭配range,可以按照索引取值,但是麻烦不推荐 l = ['aaa', 'bbb', 'vvv'] for i in range(len(l)): # 这里len(l)等于3,即指循环3次 print(i, l[i]) ''' 输出结果: 0 aaa 1 bbb 2 vvv ''' # 2. range()在python2与在python3中的区别 # 在python2中 # range(10) 输出结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 在python3中 #range(10) 输出结果:range(0,10) #for + continue for i in range(6): if i ==4: continue print(i) # #for 的嵌套循环:外层循环一次,内层循环需要完整的循环完毕 for i in range(3): print('========>外层', i) for j in range(5): print('===>内层', j) ''' 输出结果: ========>外层 0 ===>内层 0 ===>内层 1 ===>内层 2 ===>内层 3 ===>内层 4 ========>外层 1 ===>内层 0 ===>内层 1 ===>内层 2 ===>内层 3 ===>内层 4 ========>外层 2 ===>内层 0 ===>内层 1 ===>内层 2 ===>内层 3 ===>内层 4 ''' # 补充:终止for循环只有break一种方案 -
作业
''' 猜年龄游戏 1.错误的情况下只能猜三次 正确的情况下直接退出游戏 2.三次错误之后提示用户三次机会已用完 问他是否继续 如果继续则再给三次机会 如果不继续则直接退出 ''' #方法一:复杂嵌套 age = '18' count = 0 while count < 3: inp_age = input('age is :') if inp_age == age: print('年龄猜测正确') break else: print('年龄猜测错误') count += 1 if count == 3: print('提示:是否需要继续') while True: point = input('请输入指令: ') if point == 'Y': print('再给三次机会') count1 = 0 while count1 < 3: inp_age = input('age is :') if inp_age == age: print('年龄猜测正确') break else: print('年龄猜测错误') count1 += 1 break elif point == 'N': print('不需要退出程序') break #方法二 简单: age = 18 count = 0 while count < 3: inp_age = input('age is : ') inp_age = int(inp_age) if inp_age == age: print('年龄猜中') break else: print('年龄猜测错误') count += 1 if count == 3: print('提示三次机会已用完:输入指令:Y则表示再给三次机会,输入指令:N 则表示不需要直接退出') cmd = input('请输入指令 : ') if cmd == 'Y': count = 0 elif cmd == 'N': print('不需要,直接退出程序')

浙公网安备 33010602011771号