运算符和编码作业及默写
1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2、求出下列逻辑语句的值。
1),8 or 3 and 4 or 2 and 0 or 9 and 7
2),0 or 2 and 3 and 4 or 6 and 0 or 3
3、下列列结果是什么?
1)、6 or 2 > 1
2)、3 or 2 > 1
3)、0 or 5 < 4
4)、5 < 4 or 3
5)、2 > 1 or 6
6)、3 and 2 > 1
7)、0 and 3 > 1
8)、2 > 1 and 3
9)、3 > 1 and 0
10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2
4、while循环语句基本结构?
5、利用while语句写出猜⼤小的游戏: 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果 正确,然后退出循环。
6、在5题的基础上进⾏升级: 给用户三次猜测机会,如果三次之内猜测对了,则显示猜测正确,退出循环,如果三次之内没有猜测正确,则自动退出循环,并显示‘太笨了你....’。
7.使用while循环输出123456 8910
8.求1-100的所有数的和
9.输出 1-100 内的所有奇数
10.输出 1-100 内的所有偶数
11.求1-2+3-4+5 ... 99的所有数的和.
12.⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使用字符串格式化)
13. ⽤户输入一个数. 判断这个数是否是一个质数(升级题).
14. 输入一个广告标语. 判断这个广告是否合法. 根据最新的广告法来判断. 广 告法内容过多. 我们就判断是否包含'最', '第⼀', '稀缺', '国家级'等字样. 如果包 含. 提示, 广告不合法
例如, 1. 老男孩python世界第一. ==> 不合法
2. 今年过年不收礼啊. 收礼只收脑白金. ==> 合法
15. 输入一个数. 判断这个数是几位数(用算法实现)(升级题)
明日默写代码:
1. 求1-100之间所有的数的和
2. And or not的含义和特征
3. break continue的含义. 有什么区别
# Day2作业及默写 # 1、判断下列逻辑语句的True,False. 1) 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 (结果:True) 2) not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 (结果:False) # 2、求出下列逻辑语句的值。 1),8 or 3 and 4 or 2 and 0 or 9 and 7 (结果:8) 2),0 or 2 and 3 and 4 or 6 and 0 or 3 (结果:4) # 3、下列结果是什么? 1)、 6 or 2 > 1 (结果:6) 2)、 3 or 2 > 1 (结果:3) 3)、 0 or 5 < 4 (结果:False) 4)、 5 < 4 or 3 (结果:3) 5)、 2 > 1 or 6 (结果:True) 6)、 3 and 2 > 1 (结果:True) 7)、 0 and 3 > 1 (结果:0) 8)、 2 > 1 and 3 (结果:3) 9)、 3 > 1 and 0 (结果:0) 10)、 3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 (结果:2) # 4、 while循环语句基本结构? while 条件语句: 循环体 # 5、 #初级玩法 num = 66 while True: guess = int(input('请猜测数字:')) if guess > num: print('Too bigger') elif guess < num: print('Too smaller') else: print('you are right') break #升级:随机产生一个数字去猜测,直到猜测正确停止 from random import randint num = randint(1,100)#随机产生一个1-100之间的随机整数 left = 1 right = 100 while True: guess = int(input('请猜测数字(%s-%s):' % (left, right)))#提示正确的范围 if guess > num: print('Too bigger') if right < num: right = guess elif guess < num: print('Too smaller') if left > num: left = guess else: print('you are right') break #升级:随机产生一个数字去猜测,猜测3次就停止 from random import randint num = randint(1,100)#随机产生一个1-100之间的随机整数 left = 1 right = 100 count = 0 while count < 3: guess = int(input('请猜测数字(%s-%s):' % (left, right)))#提示正确的范围 if guess > num: print('Too bigger') if right < num: right = guess elif guess < num: print('Too smaller') if left > num: left = guess else: print('you are right') break #break 结束循环并不会执行到下面的 else count += 1 else:#只有当条件不成立的时候才能执行到它,第一次循环的时候条件就不成立也会执行它 print('太笨了你....') # 如果不使用 else 可以这样 if count >= 3: print('真笨') else: print('真聪明') # 6、 num = 66 count = 0 while count < 3: guess = int(input('请猜测数字:')) if guess > 66: print('Too bigger') elif guess < 66: print('Too smaller') else: print('you are right') break count += 1 else: print('太笨了你....') # 7. #方法一 count = 0 while count < 10: count += 1 if count == 7: continue else: print(count) #方法二 count = 1 while count <= 10: if count != 7: print(count) count += 1 # 8. count = 1 sum = 0 while count <= 100: sum += count count += 1 print(sum) # 9. count = 1 while count <= 100: if count % 2 == 1: print(count) count += 1 # 10. count = 1 while count <= 100: if count % 2 == 0: print(count) count += 1 # 11. count = 1 sum = 0 while count < 100: if count % 2 == 1: # 奇数加上 sum += count else: sum -= count # 偶数减去 count += 1 print(sum) # 12. #方法一:自己做的 count = 3 while count > 0: count -= 1 name = input('Name:').strip() password = input('Password:').strip() if name == 'alex' and password == 'abc': print('welcome...') break else: if count != 0: print('你还有%s 次输错机会' % count) else: print('你已经输错三次了,无法登录') #方法二:老师讲的 uname = 'alex' upsw = '123' count = 1 while count <= 3: username = input('请输入你的用户名:').strip() password = input('请输入你的密码:').strip() if username == uname and password == upsw: print('登录成功') break else: print('用户名或密码错误!') if 3-count > 0: print('你还有%s 次输错机会' % (3-count)) #机会用(3-count)很好 else: print('你已经输错三次了,无法登录') break count += 1 # 13. #质数:只能被1和它本身整除的数
# 我写的 num = int(input('请输入一个大于1的整数:')) if num == 1: print('1不是质数也不是合数') else: count = 2 while count < num: if num % count == 0: print('%s 不是质数' % num) break count += 1 else: print('%s 是质数' % num) #老师写的 (并没有排除1) n = int(input('请输入一个数字:')) for i in range(2, n): # i的范围是从2到 n-1 if n % i == 0: # 整除不是质数 print(f'{n}不是质数') break else: # 是质数的条件是遍历2~n之间所有的除数都不能整除,而不是只判断一个元素,所以要注意else的位置是和for是配对的而不是和if print(f'{n}是一个质数') # 扩展: 求1~100之内的所有质数 for n in range(2, 100): # n的范围直接从2开始取值,因为1不是质数也不是合数 for i in range(2, n): # i的范围是从2到 n-1 if n % i == 0: break else: # 是质数 print(n) # 扩展: 求1~100之内的所有质数的和 sum = 0 for n in range(2, 100): # n的范围直接从2开始取值,因为1不是质数也不是合数 for i in range(2, n): # i的范围是从2到 n-1 if n % i == 0: break else: # 是质数 sum += n print(sum) # 14. ad = input('请输入一个广告标语:') if '最' in ad or '第⼀' in ad or '稀缺' in ad or '国家级' in ad: print('广告不合法') else: print('广告合法') ##错误示范: if '最' or '第⼀' or '稀缺' or '国家级' in ad:pass #这样等价于
if '最' or '第⼀' or '稀缺' or ('国家级' in ad),结果就是'最'(因为在 or 表达式中,最左边的'最'不为0,而且 in 的优先级比 or 高) if ('最' or '第⼀' or '稀缺' or '国家级') in ad: pass#这样等价于 if '最' in ad,结果就是判断这个表达式的值 #结论:上面这个表达式不加括号的话是 in 的优先级比 or 高 # 14. #偷懒的最简单的方法是利用 len()求长度,如果考虑负数的话要先转化为绝对值 num = abs(int(input('请输入一个整数:'))) len_num = len(num) ##老师讲过之后修改(这里只能判断整数,不能判断小数) # 不转化为绝对值没办法判断负数,负数地板除的结果总是带一个负号的,不可能结果是0 num = int(input('请输入一个整数:')) #负数没办法判断,那就把负数转化为正数,方法:求绝对值或者负负得正 num = abs(num) #abs() 绝对值 # #负负得正 # if num <= 0: # num = -num count = 0 while True: count += 1 if num // 10 != 0: num //= 10 continue else: print('你输入的是一个%s 位数' % count) break #老师写的(思想相同:这道题的核心就是地板除) num = abs(int(input('请输入一个整数:'))) count = 0 while 1: num //= 10 #num = num // 10 地板除的结果是商的整数部分 count += 1 if num == 0: break print(count) #扩展:求一个数字有多少位小数 num = input('请输入一个小数:') # -123.345这里不需要转化为绝对值了,因为下面使用的是切片,不涉及前面的负号 c = len(num[num.index('.')+1:]) # 对原数字从小数点后面一位的数字开始做切片 print(c) # 明⽇默写代码: # 1. 求1-100之间所有的数的和 count = 1 sum = 0 while count <= 100: sum += count count += 1 print(sum) # 2. And or not的含义和特征 and : 并且. 左右两端同时为真. 结果才能是真 or : 或者. 左右两端有一个是真. 结果就是真 not : 非. 非真既假, 非假既真 不真-> 假 不假 -> 真 # 3. break continue的含义. 有什么区别 break: 立刻跳出循环. 打断的意思 continue: 停⽌本次循环, 继续执行下一次循环.