Python自学:做几个初级练习题看看水平呀~

发表于:2021-12-13 09:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:z天赐    来源:博客园

#
Python
分享:
  在学习了Python基本语法:输出输出、字符类型、循环、if判断、元组、字典之后,决定给自己一些练习。
  但是自己去写一些小例子发现还是太生疏,今天工作上用到循环生成一些随机数据,例如手机号啥的使用到了循环方法,自己写了半天,报错具体是哪里不清楚 搞了半天才发现自己赋值的时候a=a+1直接写成了a+1。
  学过的东西虽然懂,但是不多练习的话,自己印象根本不深刻,换个地方可能又忘记了,至此 我找到了些练习题自己去做一做,从知乎上找了篇文章,部分使用了该作者的题,但是我给他强化了一点难度,也是把我自己仅存的小技术融入到了该题目之中。

  练习题1:登陆账号密码
  需求:密码需要密文, 账号密码输入正确,提示登录成功,3次输入机会,3次机会后,让用户来选择是否继续输入。
import getpass                                                                                          #导入一个getpass模块,下面输入密码时,密文展示
username = "zhangtianci"                                                                         #变量一个账号
password = "1234qwer"                                                                    #变量一个密码
a = 0                                                                                      #循环的话,变量个自增值,好让我们判断循环几次停止
while a < 3:                                                                                                #让他循环3次
    ist_username = input("请输入用户账号:")                                     #输入账号
    ist_password = getpass.getpass("请输入用户密码")               #输入密码
    if ist_username==username and ist_password==password:    #如果输入的账号与密码 = 上面变量的账号密码,则执行下面内容
        print("登陆成功,欢迎来到酸芒果的博客园")                        #输出内容
        break                                            #账号密码输入正确了,则跳出循环了
    else:                                                 #如果账号密码输入的不对,则执行下面内容
        a = a+1                                        # 执行此,a就= 1了
        if a == 1:                                     #如果a = 1 则输出下面内容
            print("密码错误,你还有2次机会")               #输出内容
        elif a == 2:                                        #如果整个循环2次,a到时候就= 2了,= 2就执行这句
            print("密码错误,你还有1次机会")             #输出内容
        else:                                              #其他情况输出这个
            print("你的机会用完了,是否还想再次输入?想再来 输入1, 其他的话按任意键回车退出")                        #其他情况的输出内容
            agin = int(input("请输入:"))                                   #定义个agin,让用户输入值
            if agin == 1:                                           #如果用户输入1,则
                a = 0                                             #把上面的a 再等于0 ,会重新走大循环
            else:                                            #任意键按了,执行这个
                print("再见老弟")                       #输出内容

  练习题2:猜数字
  需求:输入数字进行猜测,猜大了提示:猜大了;猜小了提示:猜小了;猜对了提示:恭喜你;若没猜对,让他继续猜,但是超过3次,则退出。
import random  #引用输入随机的方法
a = [1,2,3] #使用for循环的话,我让他循环3次
b = 0   #累计次数,告诉他还有几次输入机会
num = random.randint(1,20)  #定义个num方法,里面放随机数
print(num)    #到时候看看这个随机数是多少
for i in a:     
    cc = int(input("请输入你要猜测的数字:(提示:1-20)你只有三次机会"))
    if cc == num:
        print("恭喜你猜对了")
        break
    elif cc>num:
        b = b+1
        print("你猜大呦")
    else:
        b = b+1
        print("猜小了呦")
    if b ==1:
        print("你还有2次输入机会")
    elif b==2:
        print("你还有1次输出机会")
    else:
        print("你没机会了,再见了大兄弟")

  练习题3:成绩的分类
  需求:输出成绩展示分类一共4个分类:
  1.分数大于90,展示:优秀
  2.分数大于80,展示:不错
  3.分数大于70,展示:一般
  4.分数大于等于60,展示:及格
sore = int(input("请输入你的分数:")) 
if sore > 90:
    print("优秀")
elif sore > 80:
    print("不错")
elif sore > 70:
    print("一般")
elif sore >= 60:
    print("及格")
else:
    print("你要努力了")

  练习题4:石头剪刀布
  1.随机生成个石头剪刀布
  2.输入石头剪刀布
  3.输入的石头随机生成的是剪刀,则提示你赢了
  4.输入的剪刀随机生成的是剪刀,则提示平局
  5.另一种情况则提示你输了
  6.利用循环,让用户直到赢了为止
import random
all_choices = ["石头","剪刀","布"]
a_choices = random.choice(al_choices)
print(a_choices)
a = 0
while a < 999:
    quan = input("请出拳 : ")
    if quan == "石头":
        if quan == all_choices:
            print("平局")
        elif all_choices == "剪刀":
            print("您赢了")
            break
        else:
            print("您输了")
    elif quan == "剪刀":
        if quan == all_choices:
            print("平局")
        elif all_choices == "布":
            print("您赢了")
            break
        else:
            print("您输了")
    else:
        if quan == all_choices:
            print("平局")
        elif all_choices == "石头":
            print("您赢了")
            break
        else:
            print("您输了")

  进阶练习
  上面是几个对于大佬来说非常非常简单的小例子,接下来我决定,写个稍微有那么一丁点难度(对于大佬来说,我快难死了)的东西吧!
  本次的需求:
  1.让用户输入自己手上有多少钱;
  2.展示所有商品列表 商品id、名字、金额;
  3.用户选择要购买的id编号然后用户的钱减去选择的商品金额;
  4.选择完成把这个商品放入购物车等待结算,然后再次让用户选择;
  5.用户再次选择走4,若选择完成按q退出;
  6.若不是输入商品编号给出提示,并且让用户重新输入。
money = int(input("请输入你手上有多少钱$"))
print("你的金额为",money,"元")
shop = [
("agv头盔",1780),
("MT纤维头盔",1300),
("SHoei仙鹤头盔",3699),
("Arai头盔",4600),
("LS2头盔",379),
("sol头盔",699),
("坦克头盔",350)
]
shoping_cart = []
print("《《《《《《《《《《《《 下面是头盔商品的列表")
for shoping in shop:
    print(shop.index(shoping),shoping)
while True:
    shop_id = input("请输入你要购买商品的id:           结束购买请按q:")
    if shop_id.isdigit():
        shop_id = int(shop_id)
        print(type(shop_id))
        if shop_id < len(shop) and shop_id >= 0:
            price = shop[shop_id][1]
            if money > price:
                money = money - price
                print("购买成功本次消费金额:",price,"剩余金额",money)
            else:
                print("你的金额不足,你要购买商品价格为",price,"你的余额为:",money)
        else:
            print("请输入编号范围之内的数字")
    elif shop_id == "q":
        print("欢迎下次光临")
        break
    else:
        print("输入有误,请重新输入")

  代码已经奉上,下面看看我们的需求实现效果。
  需求1:让用户输入自己手上有多少钱

  需求2:展示所有商品列表 商品id、名字、金额

  需求3:用户选择要购买的id编号然后用户的钱减去选择的商品金额

  需求4:选择完成把这个商品放入购物车等待结算,然后再次让用户选择

  需求5:用户再次选择走4,若选择完成按q退出

  需求6:若不是输入商品编号给出提示,并且让用户重新输入

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号