流程控制代码练习
练习题
- 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型
编译型语言需要编译器,一次编译完成,相当于谷歌翻译。如c语言,运行速度快,但是调试麻烦 解释型语言需要解释器,一行一行解释,相当于同声传译。如Python,执行速度慢,但是调试方便 |
- 执行 Python 脚本的两种方式是什么
一种是命令行交互式,一种是以文件形式 |
- Pyhton 单行注释和多行注释分别用什么?
单行注释 : # 多行注释 : ''' ''' |
- 布尔值分别有什么?
布尔值有两种,分别是True和False,所有数据类型都自带布尔值,除0,none,空外都是true; |
- 声明变量注意事项有那些?
变量有三个特性,id,type,value。 id指的是变量的内存地址,id相同value一定相同,value相等id不相等 type指的是变量的数据类型 value指的是变量的值 |
- 如何查看变量在内存中的地址?
name = 'jinrui' print(id(name)) |
- 写代码
- 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
1 name = input('请输入姓名》》') 2 pwd = input('请输入密码》》') 3 if name == 'seven' and pwd == '123' : 4 print('登录成功') 5 else: 6 print('登录失败'
- 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
1 count = 1 2 while count <= 3: 3 name = input('请输入姓名》》') 4 pwd = input('请输入密码》》') 5 if name == 'seven' and pwd == '123': 6 print('登录成功') 7 break 8 else: 9 print('账号或密码错误') 10 count+=1 11 else: 12 print('登录失败')
- 实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
1 count = 1 2 while count <= 3: 3 name = input('请输入姓名》》') 4 pwd = input('请输入密码》》') 5 if (name == 'seven' or name == 'alex') and pwd == '123': 6 print('登录成功') 7 break 8 else: 9 print('账号或密码错误') 10 count+=1 11 else: 12 print('登录失败')
- 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
-
写代码
a. 使用while循环实现输出2-3+4-5+6...+100 的和2 sum = 0 3 i = 2 4 while i < 101: 5 if i%2 == 0: 6 sum = sum +i 7 else: 8 sum = sum -i 9 i+=1 10 print(sum)
b. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12 ,使用 while 循环实现输出 1-100 内的所有奇数
1 count = 1 2 while count < 13: 3 print(count) 4 count+=1
1 count =1
2 while count<100:
3 if count%2 ==1:
4 print(count)
5 count+=1e. 使用 while 循环实现输出 1-100 内的所有偶数
1 count = 1 2 while count <=100: 3 if count % 2 == 0: 4 print(count) 5 count += 1
-
现有如下两个变量,请简述 n1 和 n2 是什么关系?
n1 = 123456
n2 = n1
n1 和 n2 都指向同一个地址,所对应的变量值是相等的
编写登录接口
基础需求:
- 让用户输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后退出程序
- *****
-
方式一:
1 count = 1 2 while count <= 3: 3 name = input('请输入姓名》》') 4 pwd = input('请输入密码》》') 5 if name == 'egon' and pwd == '123': 6 print('欢迎登录') # 登录成功后不退出,而且要在三次错误之后打印登录失败 7 input('请进行后续操作》》') 8 else: 9 print('账号或密码错误') 10 if count == 3: 11 print('登录失败') 12 count += 1方式二:
1 dic={ 2 'egon1':{'password':'123','count':0}, 3 'egon2':{'password':'123','count':0}, 4 'egon3':{'password':'123','count':0}, 5 6 } 7 8 9 while True: 10 name=input('username>>: ') 11 12 if not name in dic: 13 print('用户不存在') 14 continue 15 if dic[name]['count'] > 2: 16 print('尝试次数过多,锁定') 17 continue 18 19 password=input('password>>: ') 20 21 22 if password == dic[name]['password']: 23 print('登录成功') 24 break 25 else: 26 print('用户名或密码错误') #走到这一步说明账号正确,不应该继续输入账号,只需要输入密码,如何实现? 27 dic[name]['count']+=1
升级需求:
- 可以支持多个用户登录 (提示,通过列表存多个账户信息)
- 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
1 #db.txt内容:egon1|egon2| 2 dic={ 3 'egon1':{'password':'123','count':0}, 4 'egon2':{'password':'123','count':0}, 5 'egon3':{'password':'123','count':0}, 6 } 7 count=0 9 while True: 10 name=input('u>>: ') 11 if name not in dic: #name只能输入egon1等,否则会提示用户不存在 12 print('用户不存在') 13 continue 14 15 with open('db.txt','r') as f: 16 lock_users=f.read().split('|') 17 if name in lock_users: 18 print('用户%s已经被锁定' %name) 19 break 20 21 if dic[name]['count'] > 2: #dic['egon1']['count'] 22 print('尝试次数过多,锁定') 23 with open('db.txt','a') as f: 24 f.write('%s|' %name) 25 break 26 27 password=input('p>>: ') 28 29 if password == dic[name]: 30 print('登录成功') 31 break 32 else: 33 print('用户名或密码错误') 34 dic[name]['count']+=1
#变量作为条件嵌套,先验证登录,登录之后进行操作
# while循环嵌套
2 count =0
3 tag = True
4 while tag:
5 name = input('请输入姓名:》》')
6 pwd = input('请输入密码:》》')
7 if name == 'jinrui' and pwd == '1225':
8 print('登录成功')
9 choice = {1:'浏览商品',2:'添加购物车',3:'正在支付',4:'退出'}
10 print('-----列表项-----')
11 print(choice[1])
12 print(choice[2])
13 print(choice[3])
14 print(choice[4])
15 while tag:
16
17 num = input('请输入指令1,2,3,4:》》')
18 num = int(num)
19 if num ==1:
20 print(choice[1])
21 elif num ==2:
22 print(choice[2])
23 elif num ==3:
24 print(choice[3])
25 else:
26 tag =False
27
28 else:
29 print('账号或密码错误')
30 count +=1
31 if count==3:
32 print('错误次数过多,不能继续输入')
33 break
34 else:
35 print('结束')
# 1. 使用while循环输出1 2 3 4 5 6 8 9 10
1 count = 1
2 while count <=10:
3 if count ==7:
4 count+=1
5 continue
6 print(count)
7 count+=1
# 2. 求1-100的所有数的和
1 count = 1
2 sum = 0
3 while count <= 100:
4 sum=sum+count
5 if count ==100:
6 print(sum)
7 count+=1
# 3. 输出 1-100 内的所有奇数
# 4. 输出 1-100 内的所有偶数
1 count = 1
2 while count <=100:
3 print(count)
4 count+=2
5
6
7 count =1
8 while count <= 100:
9 if count%2 ==0:
10 print(count)
11 count+=1
# 5. 求1-2+3-4+5 ... 99的所有数的和
1 count = 1
2 num = 0
3 while count < 100:
4 if count % 2 == 1:
5 num = num + count
6 count += 1
7 else:
8 num = num - count
9 count += 1
10 print(count)
11
12
13 num = 0
14 for i in range(100):
15 if i%2==1:
16 num = num +i
17 else:
18 num = num -i
19 print(num)
# 7:猜年龄游戏
# 要求:
# 允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出
1 count = 1
2 while True:
3 age = input('请输入年龄》》')
4 if age == '84':
5 print('成功了')
6 break
7 else:
8 print('猜错了')
9 if count ==3:
10 break
11 count+=1
# 8:猜年龄游戏升级版
# 要求:
# 允许用户最多尝试3次
# 每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
# 如何猜对了,就直接退出
1 count = 1
2 while True:
3 age = input('请输入年龄》》')
4 if age == '84':
5 print('成功了')
6 break
7 else:
8 print('猜错了')
9 if count ==3:
10 answer =input('是否继续》》')
11 if answer == 'y' or answer =='Y':
12 count =1
13 continue
14 else:
15 break
16 count+=1