流程控制代码练习

练习题

  1. 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型

编译型语言需要编译器,一次编译完成,相当于谷歌翻译。如c语言,运行速度快,但是调试麻烦

解释型语言需要解释器,一行一行解释,相当于同声传译。如Python,执行速度慢,但是调试方便

  1. 执行 Python 脚本的两种方式是什么
一种是命令行交互式,一种是以文件形式
  1. Pyhton 单行注释和多行注释分别用什么?

单行注释 : #

多行注释 : ''' '''

  1. 布尔值分别有什么?
布尔值有两种,分别是True和False,所有数据类型都自带布尔值,除0,none,空外都是true;
  1. 声明变量注意事项有那些?

变量有三个特性,id,type,value。

id指的是变量的内存地址,id相同value一定相同,value相等id不相等

type指的是变量的数据类型

value指的是变量的值

  1. 如何查看变量在内存中的地址?

name = 'jinrui'

print(id(name))

  1. 写代码
    1. 实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!
      1 name = input('请输入姓名》》')
      2 pwd = input('请输入密码》》')
      3 if name == 'seven' and pwd == '123' :
      4     print('登录成功')
      5 else:
      6     print('登录失败'
    2. 实现用户输入用户名和密码,当用户名为 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('登录失败')
    3. 实现用户输入用户名和密码,当用户名为 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('登录失败') 
  2. 写代码
    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+=1

    e. 使用 while 循环实现输出 1-100 内的所有偶数

    1 count = 1
    2 while count <=100:
    3     if count % 2 == 0:
    4         print(count)
    5     count += 1 
  3. 现有如下两个变量,请简述 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

 

posted @ 2018-09-14 19:31  ChuckXue  阅读(260)  评论(0编辑  收藏  举报