组团学

案列:流程控制练习案例

阅读 (333639)

一、中奖的概率

判断一个数需要随机多少次才能中奖,打印随机次数

import random num = 432 # for i in range(100,500): i = 0 while True: Winning = random.randrange(100,500) #产生一个区间范围的随机数 i+=1 if num == Winning: print("中奖了 中奖号码是{}".format(num)) break print(i)

二、求一个范围的 偶数 基数

#求偶数 for i in range(1,101): if(i%2==0): print(i) #等同于 for i in range(1,101): if i%2==1: continue print(i) #求基数 for i in range(1,101): if(i%2!=0): print(i)

三、淘汰某一行

打印0-9数字[5除外],共打印8次:

  • 淘汰外循环的第五次输出
  • 内循环输出 0 1 2 3 4 6 7 8 9
for i in range(8): if i == 5:#淘汰某一行 continue for j in range(10): if j==5: #淘汰某一列 continue print(j, end=" ") print(' ')

四、 判断俩个数的大小

判断俩个数的大小,如果x>y 将俩个变量交换

x = 3 y = 1 if(x>y): z = x x = y y = z print(x,y)
不使用临时变量

我们也可以不创建临时变量,用一个非常优雅的方式来交换变量:

x,y = y,x

五、猜数字

num2 = 10.1 while True: try: num = eval(input("请输入你要猜的数字")) if num == num2: print("您猜的真准") break elif num>num2: print("您输入的数字太大了") else: print("您输入的数字太小了") except: print("请输入正确的数字")

六、三角形

(1)、for实现左侧正三角形
#左侧正三角形 for j in range(1,10): for i in range(1,j+1): print(i,end='') print('')
(2)、for实现右侧正三角形
#右侧正三角形 for j in range(1,10): for x in range(1,10-j): print(' ',end='') for i in range(1,j+1): print(i,end='') print('')
(3)、for实现左侧倒三角形
#左侧倒三角形 mylist = list(range(1,10)) mylist.reverse() for j in mylist: for i in range(1,j+1): print(i,end='') print('')
(4)、for实现右侧倒三角形
#右侧倒三角形 mylist = list(range(1,10)) mylist.reverse() print(mylist) for j in mylist: for x in range(1,10-j): #输出空格 print(' ',end='') newlist = list(range(1,j+1)) newlist.reverse() for i in newlist: print(i,end='') print('')
(5)、while实现左侧正三角形
#while三角形 左正三角形 j = 1 while j<=9: i = 1 while i<=j: print(i,end='') i+=1 j+=1 print('')
(6)、while实现右侧正三角形
#右侧正三角形 j = 1 while j<=9: k = 1 while k<=9-j: print(' ',end='') k+=1 i = j while i>=1: print(i,end='') i-=1 j+=1 print('')
(7)、while实现左侧倒三角形
#左侧倒三角形 j = 9 while j>=1: i = 1 while i<=j: print(i,end='') i+=1 j-=1 print('')
(8)、while实现右侧倒三角形
#右侧倒三角形 j = 9 while j>=1: k = 1 while k<=9-j: print(' ',end='') k+=1 i = j while i>=1: print(i,end='') i-=1 j-=1 print('')

七、猜21点游戏

import random,time user1 = input('请输入玩家1的名称') user2 = input('请输入玩家2的名称') # 存储赢的次数的字典 user_info = {user1:{'win':0},user2:{'win':0}} while True: computer1_num = random.randint(1, 10) computer2_num = random.randint(1, 10) # 获取俩个用户想要输入的数字 user1_num = input('{}:请输入一个数字(按q退出游戏)'.format(user1)) user2_num = input('{}:请输入一个数字(按q退出游戏)'.format(user2)) # 如果有人输入了q则代表结束 if user1_num == 'q' or user2_num == 'q': print('欢迎下次在玩') break user1_sum = int(computer1_num) + int(computer2_num) + int(user1_num) user2_sum = int(computer1_num) + int(computer2_num) + int(user2_num) print('底牌数字为:',computer1_num,computer2_num) if abs(user1_sum-21) > abs(user2_sum-21): print('{}:点数为:{} {}:点数为:{} 结果:{}获胜'.format(user1,user1_sum,user2,user2_sum,user2)) user_info[user2]['win'] += 1 else: print('{}:点数为:{} {}:点数为:{} 结果:{}获胜'.format(user1, user1_sum, user2, user2_sum, user1)) user_info[user1]['win'] += 1 print('计算机正在重新洗牌') time.sleep(2)

八、 登录

用户登陆验证系统

dbUserName = 'admin' dbUserPass = '123456' while True: loginName = input('请输入用户名') #动态获取用户名 loginPass = input('请输入密码') #动态获取用户输入的密码 state = 1 #给一个用户名的状态值 默认为1 if loginName != dbUserName: #判断用户名是否不存在 print("该用户名不存在") state = 2 if state == 1: #判断用户名的状态值 如果为1 证明 用户名正确 所以该判断下面的密码了 if dbUserPass == loginPass: #判断密码是否正确 print('欢迎',loginName) break else: print("请输入正确的密码") #作业:加上验证码 验证码的要求 随机数(不能每次都是一样的) dbUserName = 'admin' dbUserPass = '123456' while True: loginName = input('请输入用户名') #动态获取用户名 loginPass = input('请输入密码') #动态获取用户输入的密码 if loginName == dbUserName: #判断用户名是否和之前已经注册过的用户名相同(有人就是该用户是否存在) if loginPass == dbUserPass:#如果用户名正确 判断密码是否正确 print("欢迎",loginName) break #r如果密码正确跳出循环体 else: print("请输入正确的密码") else: print("该用户不存在!请输入正确的用户名") print("我是登录成功以后的内容")

九、 阶乘

通过用户输入数字计算阶乘

# 通过用户输入数字计算阶乘 # 获取用户输入的数字 num = int(input("请输入一个数字: ")) factorial = 1 # 查看数字是负数,0 或 正数 if num < 0: print("抱歉,负数没有阶乘") elif num == 0: print("0 的阶乘为 1") else: for i in range(1,num + 1): factorial = factorial*i =1*1*2*3*4 print("%d 的阶乘为 %d" %(num,factorial))
需要 登录 才可以提问哦