循环语句:while循环、for循环(C语言中还有do…while结构,但python中不支持)
条件语句:if…elif…else语句(可以嵌套使用)
while格式:(while中参数不会自增)
格式:
while 判断条件:
要循环的代码
实例:
#打印1-10 n = 1 while n <= 10: print(n,end ='\n') #变量必须要有变化 n += 1
n = 1 while n <= 50: if n %3 == 0: print('%d能被3整除'%n) print('\n') n += 1
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))
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('猜的有点小噢,再来一次吧!')
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判断,目前不知道有什么好的方法,所以比较难看。若大佬看到,希望给出纠正!