当前位置:首页 » 《随便一记》 » 正文

Python中的循环语句训练_陈先森的研究生活

21 人参与  2022年04月20日 09:27  分类 : 《随便一记》  评论

点击全文阅读


Python中的循环、条件语句训练

循环语句:while循环、for循环(C语言中还有do…while结构,但python中不支持)

条件语句:if…elif…else语句(可以嵌套使用)

  1. 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)

  1. 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同样。

  1. 那么什么时候用while循环什么时候用for循环呢?

    当有固定次数循环时使用for,不确定次数循环时使用while比较方便。

  2. 再加个例子,掷骰子游戏

    掷骰子游戏要求
    两个骰子: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判断,目前不知道有什么好的方法,所以比较难看。若大佬看到,希望给出纠正!


点击全文阅读


本文链接:http://zhangshiyu.com/post/38490.html

金币  充值  循环  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1