Python中的循环、条件语句训练
循环语句:while循环、for循环(C语言中还有do…while结构,但python中不支持)
条件语句:if…elif…else语句(可以嵌套使用)
-
while格式:(while中参数不会自增)
格式:
while 判断条件:
要循环的代码实例:
- 打印1-10
#打印1-10
n = 1
while n <= 10:
print(n,end ='\n')
#变量必须要有变化
n += 1
- 求1-50以内能被3整除的整数
n = 1
while n <= 50:
if n %3 == 0:
print('%d能被3整除'%n)
print('\n')
n += 1
- 求 [35,987]之间所有整数的和
y = 0
j = 34
while j < 987:
j += 1
y += j
print(y)
- 去超市买东西,价格和数量,允许买多件商品,计算所有商品的总额
total = 0 #计数总金额
commodity_num = 0 #计数购买商品总数
while True:
# 先买
price = float(input('商品单价:'))
number = int(input('商品数量:'))
# 计算总额
total += price * number
# 计算商品总数
commodity_num += number
# 判断是否继续购买
answer = input('当前商品总额为:%.2f,是否继续添加商品(N表示退出)?' % total)
if answer == 'N':
break
print('总共购买%d件商品,所有商品总额为:%.2f元' % (commodity_num, total))
- 猜数字游戏:可以猜多次,直到猜对了为止,如果猜错了给出适当提示,猜大了还是小了
要求:1)统计猜数的总次数
2)如果一次就中,赶紧去买彩票吧,必中1个亿
2-5次,运气还可以哦
6-10次,运气一般啊
>10次,什么狗屎运啊
import random2
ran = random2.randint(1, 50)
count = 0 # 用于统计猜的次数
#print(ran)
# 循环多次猜
while True:
guess = int(input('猜一个1-50之间的数字:')) # 注意:input输入的是字符型
count += 1
# 猜对就结束
if guess == ran:
if count == 1:
print('您是真的牛批!赶紧去买彩票吧,必中1个亿!')
elif 2 <= count <= 5:
print('运气还可以哦!')
elif 6 <= count <= 10:
print('运气一般啊!')
else:
print('什么狗屎运啊!建议最近别出门')
break
elif guess > ran:
print('猜的有点大噢,再来一次吧!')
else:
print('猜的有点小噢,再来一次吧!')
- 猜拳游戏:与人机pk,游戏次数共3次,谁获胜次数多就赢得最后胜利
import random2
# 电脑应该随机的出一个数字 [0,2]
# 需要使用到随机数模块 random
# random.randint(a,b) ==> 能够生成 [a,b] 的随机整数
n = 3 # 总次数
jiqi_num = 0 # 机器胜利次数
hum_num = 0 # 玩家获胜次数
while n > 0:
computer = random2.randint(0, 2)
# print('电脑出的是:', computer)
player = int(input('请输入 (0)剪刀 (1)石头 (2) 布:')) # 1 == 1 结果是False
n -= 1 # 计数出拳次数还有几次
# 提示用户出拳
if player == 0:
print('你出的是剪刀')
if computer == 2:
print('恭喜你,这局你赢了!!!')
hum_num += 1
elif computer == 1:
print('你个垃圾,这局输了吧!')
jiqi_num += 1
else:
print('这局打平!')
elif player == 1:
print('你出的是石头')
if computer == 0:
print('恭喜你,这局你赢了!!!')
hum_num += 1
elif computer == 2:
print('你个垃圾,这局输了吧!')
jiqi_num += 1
else:
print('这局打平!')
elif player == 2:
print('你出的是布')
if computer == 1:
print('恭喜你,这局你赢了!!!')
hum_num += 1
elif computer == 0:
print('你个垃圾,这局输了吧!')
jiqi_num += 1
else:
print('这局打平!')
else:
jiqi_num += 1
print("请不要瞎jb出好不好!")
print('你还剩%d次机会' % n)
if n == 0:
print('次数耗尽,我们来看下胜负结果:')
print('机器玩家获胜%d局' % jiqi_num, '你获胜%d局' % hum_num)
if hum_num > jiqi_num:
print("你还是牛批!战胜了机器")
else:
print('给你机会你自己不中用啊!垃圾玩意儿!')
else:
print('还有%d局游戏' % n)
-
for循环语句
python中的for循环指的是for…in…循环结构,和C语言中的for循环有区别
for语句格式:for ele in iterable(for循环中的变量会自增)
注:for i in range(n):
其中,range(n):默认从0开始取值到n-1结束
range(start,stop,step):[start,stop) —> 左开右闭
step —> 步长,默认为1
实例:
- 输入用户名和密码,如果三次都没有成功登录,提示账号被锁定
# 输入用户名和密码,如果三次都没有成功登录,提示账号被锁定
for i in range(3):
# 提示输入用户名和密码
username = input('请输入用户名:')
password = input('请输入密码:')
# 判断输入是否正确 admin 12345
if username == 'admin' and password == '12345':
print('用户登录成功!')
break
else:
print('用户名或者密码错误!')
else: # 若三次机会用完还没输对,那就锁定
print('账户被锁定')
这里特别注意下,for…else结构和while…else结构,当for循环全部遍历完,执行else语句。若for循环过程中被中断,else不执行。while…else同样。
-
那么什么时候用while循环什么时候用for循环呢?
当有固定次数循环时使用for,不确定次数循环时使用while比较方便。
-
再加个例子,掷骰子游戏
掷骰子游戏要求
两个骰子:1-6
1.玩游戏要有金币,没有金币不能玩游戏
2.玩游戏赠送金币1枚,充值获取金币
3.每次充值10元的倍数,10元可充值20个金币
4.玩游戏消耗5个金币
5.猜大小:猜对 鼓励金2枚 猜错没有金币 两个骰子超出6点以上认为是大,否则是小
6.游戏结束:①主动退出,②没有金币退出
7.只要退出就打印金币数
import random
coins = 0 # 金币数
print('欢迎来到头铁王游戏!')
def recharge():
while True:
global coins # 如果函数内部要改变外部声明的变量值,则需在函数内部声明全局变量,在外部声明就会出错
money = int(input('输入充值金额:'))
# 充值10元的倍数,每10元可充值20金币
if money % 10 == 0:
coins += money * 2
print('充值成功,当前金币数为:%d' % coins)
choice = input('是否继续充值?')
if choice == 'Y':
continue
else:
print('充值结束!当前金币余额为:%d' % coins)
break
else:
print('充值金额不是10的倍数,充值失败!请重新充值!')
# if __name__ == '__main__':
# recharge()
welcome = True
while welcome:
if coins < 5:
print('金币不足,请充值!')
recharge()
else:
choice = input('是否开始游戏?')
if choice == 'Y': # 开始游戏
print('欢迎进入掷骰子游戏!')
while True:
# 玩一局扣除金币5枚
coins -= 5
# 玩一局游戏奖励1枚
coins += 1
# 骰子清洗完毕,猜大小
ran1 = random.randint(1, 6)
ran2 = random.randint(1, 6)
# 猜大小
guess = input('洗牌完毕,请猜大小:')
if (guess == '大' and ran1 + ran2 > 6) or (guess == '小' and ran1 + ran2 <= 6):
print("恭喜您,猜对了!得到奖励金2枚!")
coins += 2
choice = input('是否继续游戏?')
if choice == 'Y':
continue
else:
print('游戏结束,当前金币余额为:%d' % coins)
break
else:
print('很遗憾,您猜错了!')
choice = input('是否继续游戏?')
if choice == 'Y':
if coins >= 5:
continue
else:
choice =input('金币不足,是否充值:')
if choice == 'Y':
recharge()
else:
print('游戏结束,当前金币余额为:%d' % coins)
welcome = False
break
else:
print('游戏结束,当前金币余额为:%d' % coins)
welcome = False
break
else:
print('退出游戏中...\n', '成功退出游戏!\n')
break
由于代码是自己写的,刚学Python不久,所以感觉用了好多次if判断,目前不知道有什么好的方法,所以比较难看。若大佬看到,希望给出纠正!