Python简单题目代码集

大学生活刚开始的时候,有很多朋友大一学的python,对于高中没有接触过编程的同学,python的学习便成了一大难题,在这里总结一些帮朋友处理问题时候写到的一些简单经典的python题目,希望可以帮到大家

1、石头剪刀布

import random

guess_list = ["石头", "剪刀", "布"]
win_combination = [["布", "石头"], ["石头", "剪刀"], ["剪刀", "布"]]    #定义这两个列表

user = input("请输入你的选择(石头、剪刀、布):")   #玩家输入一个猜拳种类
while user not in guess_list:
    user = input("输入错误,请重新输入你的选择(石头、剪刀、布):")    #如果玩家输入的不是guess_list里的,那就判断失误,重新输入

computer = random.choice(guess_list)    #让电脑随机生成一个guess_list里的猜拳种类

print(f"你的选择是:{user},计算机的选择是:{computer}")    #这行写着感觉好看点,说明一下玩家输入的和电脑生成的

if user == computer:      #判断结果
    print("平局")
else:
    if [user, computer] in win_combination:
        print("恭喜你赢了")
    else:
        print("抱歉还得练")

2、求BMI

class BMI:       #定义了一个名为 BMI 的类
    def __init__(self,name,age,weight,height) :  #类的构造函数 __init__ 接受 name、age、weight、height作为参数
        self.name = name
        self.age = age
        self.weight = weight
        self.height = height
    def getBMI(self):       #getBMI 方法用于根据体重和身高计算 BMI 值
        height_m = self.height/100
        bmi = self.weight/(height_m**2)
        return bmi
    def getStatus(self):      #getStatus 方法根据计算得到的 BMI 值判断身体状态,返回相应的描述
        bmi = self.getBMI()
        if bmi < 18.5:
            return "过轻"
        elif 18.5 <= bmi < 24:
            return "正常"
        elif 24 <= bmi < 27:
            return "过重"
        elif 27 <= bmi < 30:
            return "轻度肥胖"
        elif 30 <= bmi < 35:
            return "中度肥胖"
        else:
            return "重度肥胖"
    def getName(self):
        return self.name
    def getAge(self):
        return self.age
    def getWeight(self):
        return self.weight
    def getHeight(self):    #getName、getAge、getWeight、getHeight用于获取实例的各个属性值
        return self.height
person = BMI("小明",18,65,175)   #这个是给参数赋值,如果说想改进一下用input输入值,可以自行更改
print("姓名为:", person.getName())
print("BMI 值为:", person.getBMI())
print("身体状态为:", person.getStatus())
print("年龄为:", person.getAge())
print("体重为:", person.getWeight())
print("身高为:", person.getHeight())
# 这是代码理想的运行结果
# 姓名为: 小明
# BMI 值为: 21.224489795918366
# 身体状态为: 正常
# 年龄为: 18
# 体重为: 65
# 身高为: 175

3、汉诺塔递归

i = 1
def move(pfrom, pto):     #定义函数 move
    global i              #通过global关键字声明了变量i为全局变量,用于记录移动的步数
    print("第%d步:%s ---> %s" % (i, pfrom, pto))    #打印出移动圆盘的具体步骤
    i += 1
 
def hanoi(n, a, b, c):    #定义函数hanoi,这是解决汉诺塔问题的核心函数,接受参数 n(表示要移动的圆盘数量)以及 a、b、c 分别代表三根柱子的名称
    if n == 1:            #当 n 等于 1 时,直接将圆盘从起始柱子 a 移动到目标柱子 c
        move(a, c)
    else:                 #当 n 大于 1 时,它通过递归调用自身来逐步完成圆盘的移动
        hanoi(n - 1, a, c, b)       #先将 n - 1 个圆盘从 a 借助 c 移动到 b
        move(a, c)                  #然后将最底下的一个圆盘从 a 移动到 c                        
        hanoi(n - 1, b, a, c)       #最后再将 n - 1 个圆盘从 b 借助 a 移动到 c
 
n = int(input("请输入盘数:"))
print("具体走法步骤如下:")
hanoi(n, "A", "B", "C")
print("一共需走%d步" % (i - 1))

4、英文歌词频统计

def replacement(song):
    song = song.replace('.', ' ').replace(',', ' ').replace('!', ' ').replace('?', ' ')
    # 这一步是把所有标点符号替换成空格
    words = song.split()
    # 这一步是我把字符串拆分成单词列表,然后在下一步把单词储存在一个空字典里边,方便统计
    value = {}
    
    # 用循环遍历单词列表
    for key in words:
        # 将单词转换为小写忽略大小写差异
        key = key.lower()
        # 如果单词已在字典中,则增加其计数
        if key in value:
            value[key] += 1
        # 如果单词不在字典中,则添加到字典,并设置计数为1
        else:
            value[key] = 1
    
    return value

song_word = str(input("请输入你想进行词频统计的歌词: "))#输入需要进行词频统计的英文歌歌词
word_freq = replacement(song_word)# 调用我定义的函数然后计算词频

for key, value in word_freq.items():
    print(f"{key}: {value}")# 打印每个单词还有出现的次数

5、词频统计

这个当时做的是对英文的自我介绍进行的词频统计,可以根据自己需求对变量命名进行修改

def replacement(self_introduction):
    self_introduction = self_introduction.replace('.', ' ').replace(',', ' ').replace('!', ' ').replace('?', ' ')
    # 这一步是把所有标点符号替换成空格
    words = self_introduction.split()
    # 这一步是我把字符串拆分成单词列表,然后在下一步把单词储存在一个空字典里边,方便统计
    word_frequency = {}
    
    # 用循环遍历单词列表
    for word in words:
        # 将单词转换为小写忽略大小写差异
        word = word.lower()
        # 如果单词已在字典中,则增加其计数
        if word in word_frequency:
            word_frequency[word] += 1
        # 如果单词不在字典中,则添加到字典,并设置计数为1
        else:
            word_frequency[word] = 1
    
    return word_frequency

my_self_introduction = ""#自己把你自我介绍放里边,复制粘贴进去就行
word_freq = replacement(my_self_introduction)# 调用我定义的函数然后计算词频

for word, freq in word_freq.items():
    print(f"{word}: {freq}")# 打印每个单词还有出现的次数

6、四种图形的面积计算问题

import math

def circle_area(radius):
    return math.pi * radius ** 2   # 定义了一个函数计算圆形的面积

def square_area(side):
    return side ** 2   # 这个函数计算正方形的面积

def rectangle_area(length, width):
    return length * width  # 计算长方形的面积

def trapezoid_area(a, b, height):
    return (a + b) * height / 2   # 计算梯形的面积

if __name__ == "__main__":    #这块是主程序,起一个选择判断的作用
    radius = float(input("请输入圆形的半径:"))
    print(f"圆形的面积是:{circle_area(radius)}")#在这块对定义的圆形面积函数进行调用

    side = float(input("请输入正方形的边长:"))
    print(f"正方形的面积是:{square_area(side)}")    # 调用我定义的正方形面积函数

    length = float(input("请输入长方形的长度:"))
    width = float(input("请输入长方形的宽度:"))
    print(f"长方形的面积是:{rectangle_area(length, width)}")    # 调用我定义的长方形面积函数

    a = float(input("请输入梯形的上底:"))
    b = float(input("请输入梯形的下底:"))
    height = float(input("请输入梯形的高:"))
    print(f"梯形的面积是:{trapezoid_area(a, b, height)}")   # 调用我定义的梯形面积函数

7、对一串数字的倒序输出

nums = []     #创建了一个空列表 nums,用于存储后续输入的整数
while True:    #进入 while True 循环,程序会一直等待用户输入
    str = input()
    numbers = str.split()   #通过 split() 方法将输入的字符串按照空格进行分割,得到一个包含各个子字符串的列表 numbers
    for str in numbers:     #遍历 numbers 列表中的每个子字符串 str,将其转换为整数 num 并添加到 nums 列表中
            num = int(str)
            nums.append(num)
    break         #完成一次输入的处理后,通过 break 语句跳出 while True 循环
for num in nums[::-1]:     #使用切片 nums[::-1] 对 nums 列表进行逆序操作
    print(num, end=" ")

8、一个简单的登录判断

count = 3
while (count > 0):
    user_name=str(input("请输入用户名:"))
    key=int(input("请输入密码: "))
    count -= 1
    if user_name == 'admin' and key == 1314 :
        print("登陆成功!")
        break
    else:
        print("登陆失败,请再次尝试")
        if count == 0:
            print('登陆失败,您已无尝试次数')
            break
    print(f'你还剩余{count}次机会')
  1. 首先设置了变量 count 为3,表示用户最多有3次尝试登录的机会。
  2. 进入 while 循环,只要 count 大于0,循环就会继续执行。
  3. 在循环内,先通过 input 函数分别获取用户输入的用户名(转换为字符串类型)和密码(转换为整数类型)。
  4. 然后将 count 的值减1,表示已经进行了一次尝试。
  5. 接着判断输入的用户名和密码是否与预设的正确值(admin 和 1314)匹配。如果匹配,则打印“登陆成功!”并通过 break 语句跳出 while 循环;如果不匹配,则打印“登陆失败,请再次尝试”。
  6. 如果此时 count 的值已经变为0,即3次尝试都已用完,还会额外打印“登陆失败,您已无尝试次数”并通过 break 语句跳出 while 循环。
  7. 最后,在每次循环结束时(除了最后一次尝试且失败的情况),会通过 f 字符串打印出用户还剩余的尝试次数。

暂时就先总结这些吧,希望可以帮到大家,每个程序代码我都已经附上了注释详解,便于阅读,后续还会更新更多的python基础题目还有对python的基础教程,欢迎新手学习,也希望大佬指点,能给个三连支持一下

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值