Python小白练习题(一)

2022-08-16

1、前言

本文记录一些Python学习过程中的练习题,意在培养编程思维

2、宗旨

做不做得出来,代码写的漂不漂亮不重要,重要的是自己一定要想,有一个思考,动手的过程

3、练习题

3.1 小白新手上路 input print

1、需求:

问⽤户的姓名、年龄、⼯作、爱好 ,然后打印成以下格式:

------------ info of Laifu -----------
Name : 来福
Age : 24
job : Linux
Hobbie: Girl
------------- end --------------------

2、思考

只需要简单的在字符串⾥引⽤外部的变量就可以啦

3、代码

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:")

info = f'''
------------ info of Laifu -----
Name : {name}
Age : {age}
job : {job}
Hobbie: {hobbie}
------------- end -----------------
'''

print(info)
Name:LiangLaifu
Age:24
Job:Linux,Python
Hobbie:Girl

------------ info of Laifu -----
Name : LiangLaifu
Age : 24
job : Linux,Python
Hobbie: Girl
------------- end -----------------

3.2 if多分支

1、需求

你的⼯资多少决定了你的⼼态:写⼀段程序,读取⽤户输⼊的⼯资,根据⼯资多少打印相应的⽂字

⽉薪1000:⽼板,我是你爹!
⽉薪2000:⽼板,xxx&^RT^&%%^&
⽉薪5000:⽼板脑⼦有坑,背后说坏话
⽉薪1万:⽼板说的有有点问题,但我不说话
⽉薪2万:⽼板说啥就是啥吧,给钱就⾏
⽉薪3万:⽼板说什么都是对,如果有⼈错了,那⼀定是我
⽉薪5万:996就像呼吸⼀样⾃然
⽉薪10万:公司就是我家

2、代码

salary = int(input("请输入你的工资:"))

if salary <= 1000:
    print("⽼板,我是你爹!")
elif salary <= 2000:
    print("⽼板,xxx&^RT^&%%^&")
elif salary <= 5000:
    print("⽼板脑⼦有坑,背后说坏话")
elif salary <= 10000:
    print("⽼板说的有有点问题,但我不说话")
elif salary <= 20000:
    print("⽼板说啥就是啥吧,给钱就⾏")
elif salary <= 30000:
    print("⽼板说什么都是对,如果有⼈错了,那⼀定是我")
elif salary <= 50000:
    print("996就像呼吸⼀样⾃然")
else:
    print("公司就是我家")
请输入你的工资:49999
996就像呼吸⼀样⾃然

3.3 年会抽奖程序

3.3.1 需求:

某科技有限公司有300员⼯,开年会抽奖,奖项如下:
⼀等奖 3名, 泰国5⽇游
⼆等奖6名,Iphone⼿机
三等奖30名,避孕套⼀盒

规则:

  1. 共抽3次,第⼀次抽3等奖,第2次抽2等奖,第3次压轴抽1等奖
  2. 每个员⼯限中奖⼀次,不能重复

3.3.2 思考

  1. ⽣成⼀个员⼯列表,⽤random模块从⾥⾯取随机值
  2. 取完值之后,⽴刻从员⼯⼤列表⾥把中奖⼈删掉,即可防⽌其再次中奖

3.3.3 代码

import random

staff_user = []
for staff in range(1, 301):
    staff_user.append("员工" + str(staff))
# print(staff_user)
num_peo = [30, 6, 3]

for i in range(3):
    # 循环取三次值,每次取值的下标和 i 的轨迹(0,1,2)相同,所以可直接使用
    winner_user = random.sample(staff_user, num_peo[i])
    for winner in winner_user:
        staff_user.remove(winner)

    print(f"获得{3 - i}等奖的是:{winner_user}")
    print(f"剔除了{3 -i}获奖人数,现在还剩下{len(staff_user)}人")
    print()
获得3等奖的是:['员工135', '员工289', '员工210', '员工260', '员工172', '员工90', '员工233', '员工275', '员工111', '员工30', '员工252', '员工97', '员工206', '员工102', '员工108', '员工112', '员工219', '员工280', '员工268', '员工256', '员工245', '员工105', '员工93', '员工244', '员工198', '员工278', '员工98', '员工64', '员工225', '员工14']
剔除了3获奖人数,现在还剩下270人

获得2等奖的是:['员工208', '员工151', '员工181', '员工134', '员工47', '员工296']
剔除了2获奖人数,现在还剩下264人

获得1等奖的是:['员工61', '员工223', '员工178']
剔除了1获奖人数,现在还剩下261人

3.4 班级分组小程序

3.4.1 需求

现要求按考试成绩⾼低将学员们分成5组,全存在⼀个新的⼤列表⾥, 5组分别是90-100, 80-89, 70-79,60-69, 0-59;最终的数据格式如下:

new_stu_list = [
 [
 ["A",100],
 ["B",91],
 ],
 [
 ["C",79],
 ["D",78],
 ],
 ....
 ....
]

3.4.2 附:班级成绩列表

stu_list = [['李渊', 82], ['李世⺠', 7], ['侯君集', 5], ['李靖', 58], ['魏征',
41], ['房⽞龄', 64], ['杜如晦', 65], ['柴绍', 94], ['程知节', 45], ['尉迟恭', 94],
['秦琼', 54], ['⻓孙⽆忌', 85], ['李存恭', 98], ['封德彝', 16], ['段志⽞', 44], ['刘
弘基', 18], ['徐世绩', 86], ['李治', 19], ['武则天', 39], ['太平公主', 57], ['⻙后',
76], ['李隆基', 95], ['杨⽟环', 33], ['王勃', 49], ['陈⼦昂', 91], ['卢照邻', 70],
['杨炯', 81], ['王之涣', 82], ['安禄⼭', 18], ['史思明', 9], ['张巡', 15], ['雷万
春', 72], ['李⽩', 61], ['⾼⼒⼠', 58], ['杜甫', 27], ['⽩居易', 5], ['王维', 14],
['孟浩然', 32], ['杜牧', 95], ['李商隐', 34], ['郭⼦仪', 53], ['张易之', 39], ['张昌
宗', 61], ['来俊⾂', 8], ['杨国忠', 84], ['李林甫', 95], ['⾼适', 100], ['王昌龄',
40], ['孙思邈', 46], ['⽞奘', 84], ['鉴真', 90], ['⾼骈', 85], ['狄仁杰', 62], ['⻩
巢', 79], ['王仙芝', 16], ['⽂成公主', 13], ['松赞⼲布', 47], ['薛涛', 79], ['⻥⽞
机', 16], ['贺知章', 20], ['李泌', 17], ['韩愈', 100], ['柳宗元', 88], ['上官婉⼉ 五
代⼗国:朱温', 55], ['刘仁恭', 6], ['丁会', 26], ['李克⽤', 39], ['李存勖', 11],
['葛从周', 25], ['王建', 13], ['刘知远', 95], ['⽯敬瑭', 63], ['郭威', 28], ['柴
荣', 50], ['孟昶', 17], ['荆浩', 84], ['刘彟', 18], ['张及之', 45], ['杜宇', 73],
['⾼季兴', 39], ['喻皓', 50], ['历真', 70], ['李茂贞', 6], ['朱友珪', 7], ['朱友贞',
11], ['刘守光', 2]]

3.4.3 代码

stu_list = 
--------------------------
------------------------
new_stu_list = [
    [],
    [],
    [],
    [],
    [],
]

for i in stu_list:
    if 90 <= i[1] <= 100:
        new_stu_list[0].append(i)
    elif 80 <= i[1] <= 89:
        new_stu_list[1].append(i)
    elif 70 <= i[1] <= 79:
        new_stu_list[2].append(i)
    elif 60 <= i[1] <= 69:
        new_stu_list[3].append(i)
    else:
        new_stu_list[4].append(i)

for group in new_stu_list:
    print(group)
[['柴绍', 94], ['尉迟恭', 94], ['李存恭', 98], ['李隆基', 95], ['陈⼦昂', 91], ['杜牧', 95], ['李林甫', 95], ['⾼适', 100], ['鉴真', 90], ['韩愈', 100], ['刘知远', 95]]
[['李渊', 82], ['⻓孙⽆忌', 85], ['徐世绩', 86], ['杨炯', 81], ['王之涣', 82], ['杨国忠', 84], ['⽞奘', 84], ['⾼骈', 85], ['柳宗元', 88], ['荆浩', 84]]
[['⻙后', 76], ['卢照邻', 70], ['雷万春', 72], ['⻩巢', 79], ['薛涛', 79], ['杜宇', 73], ['历真', 70]]
[['房⽞龄', 64], ['杜如晦', 65], ['李⽩', 61], ['张昌宗', 61], ['狄仁杰', 62], ['⽯敬瑭', 63]]
[['李世⺠', 7], ['侯君集', 5], ['李靖', 58], ['魏征', 41], ['程知节', 45], ['秦琼', 54], ['封德彝', 16], ['段志⽞', 44], ['刘弘基', 18], ['李治', 19], ['武则天', 39], ['太平公主', 57], ['杨⽟环', 33], ['王勃', 49], ['安禄⼭', 18], ['史思明', 9], ['张巡', 15], ['⾼⼒⼠', 58], ['杜甫', 27], ['⽩居易', 5], ['王维', 14], ['孟浩然', 32], ['李商隐', 34], ['郭⼦仪', 53], ['张易之', 39], ['来俊⾂', 8], ['王昌龄', 40], ['孙思邈', 46], ['王仙芝', 16], ['⽂成公主', 13], ['松赞⼲布', 47], ['⻥⽞机', 16], ['贺知章', 20], ['李泌', 17], ['上官婉⼉ 五代⼗国:朱温', 55], ['刘仁恭', 6], ['丁会', 26], ['李克⽤', 39], ['李存勖', 11], ['葛从周', 25], ['王建', 13], ['郭威', 28], ['柴荣', 50], ['孟昶', 17], ['刘彟', 18], ['张及之', 45], ['⾼季兴', 39], ['喻皓', 50], ['李茂贞', 6], ['朱友珪', 7], ['朱友贞', 11], ['刘守光', 2]]

标题:Python小白练习题(一)
作者:lianglaifu
地址:https://llfu.life/articles/2022/08/15/1660561382360.html