共计 3455 个字符,预计需要花费 9 分钟才能阅读完成。
一、中奖的概率
判断一个数需要随机多少次才能中奖,打印随机次数
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))
正文完
星哥玩云-微信公众号