Python课堂练习

1.百词斩

# 开发时间 :2023/4/2  10:55
import time
eng=["counter","stall","shelf","price tag","discount","change","bank","shop"]
chn=["柜台","售货摊","货架","标价签","打折扣","零钱","银行","商店"]
dic = dict(zip(eng,chn)) # 将列表转换为字典
print("百词斩")
times =int(input("请设置每个单词停留时间(1~10秒)")) # 设置停留时间
for key in dic: # 遍历字典
    print(key+"______________") # 输出英语单词,写汉语意思
    time.sleep(times) # 单词写汉语停留时间
for value in dic.values(): # 遍历字典
    print(value+"______________") # 输出汉语意思,写英语单词
    time.sleep(times) # 汉语写英语停留时间
import datetime
note={} # 建立空字典note,保存便签信息
for i in range(2): # 存储两条便签信息
    print("第"+str(i+1)+"条便签:") # 输出便签的编号
    order=datetime.datetime.now() # 获取当前时间作为便签的时间
    order=format(order,"%Y-%m-%d %H:%M:%S ") # 格式化便签时间
    word = input("") # 输入便签内容
    if word in dic or word in dic.values():                        #判断字典内是否有某个键或某个值
        word+='   正确'
    else:
        word+='   错误'
    note[order] = word  # 便签信息保存到字典note
for key,value in note.items(): # 输出便签                         item相当于把key和value包裹在一起形成了键值对
    print(key, "\n", value)

2.车辆

filename='车辆进出记录表.txt'
carlist=[]
with open(filename,'r') as f:
    list1=f.readlines()
    for i in range(1, len(list1)):
        list1[i] = list1[i].rstrip('\n')
        a,b=list1[i].split(' ')
        if b=='进':
            carlist.append(a)
        elif a in carlist:
             carlist.remove(a)        
with open('新增车辆信息表.txt','w') as f2:
    f2.write('\n'.join(carlist))

 3.打印获奖名单

from operator import itemgetter

player_num = int(input('共有多少名参赛者?'))
scores = []
for i in range(player_num):
    s = float(input('请输入第{}号选手成绩:'.format(i + 1)))
    scores.append(s)

print('======================')
enum_scores = enumerate(scores)  
sortedscore = sorted(enum_scores, key=itemgetter(1), reverse=True)  

upper = len(sortedscore) if len(sortedscore) < 6 else 6  
print('前{}名运动员编号依次是:'.format(upper))
for i in range(upper):
    print('第{}名:{}号选手成绩是{}。'.format(i + 1, sortedscore[i][0] + 1, sortedscore[i][1]))

4.点餐程序

caidan={"吴山贡鹅":3,"石耳炒蛋":6,"土豆丝":10,
        "农家小炒":4,"臭鳜鱼":5,"笋烧黑猪肉":0,
        "地锅鸡":7,"红烧牛肉":7,"西红柿蛋汤":10}
diancan=[]
print(caidan)
ch="y"                              
while ch=="y":
    choice=input("请输入你选择的菜品:")
    if choice in caidan:
        if caidan[choice]>0:
            diancan.append(choice)
            caidan[choice]-=1
        else:
            print("该菜品已经售完,请选择其他菜品。")
    ch=input("你还需要选择其他菜品吗(y/n):")
ch=input("有需要删除的菜品吗(y/n):")                             
while ch=="y":
    choice=input("请输入需要删除的菜品:")
    diancan.remove(choice)
    caidan[choice]+=1
    ch=input("你还有不需要的菜品吗(y/n):")
print("你选择的菜品是:",diancan)

5.体温监控

filename='G:\Desktop\李明同学体温记录表.txt'
with open(filename,'r') as f:
    maxnum=0
    list1=f.readlines()
    num=0
    for i in range(1, len(list1)):
        list1[i] = list1[i].rstrip('\n')
        if float(list1[i])>37.2:
            num=num+1
        else:
            num=0
        if num>=maxnum:
            maxnum=num
    if maxnum<7:
         print('无连续一周发热的情况,最长连续发热天数为:%d天'  % maxnum)
    else:
         print('有连续一周发热的情况,最长连续发热天数为:%d天'  % maxnum)

6.体温测控

import os  
  
def read_temperatures(filename):  
    temperatures = {}  
    try:  
        with open(filename, 'r') as file:  
            for line in file:  
                name, temp = line.strip().split(',')  
                temp = float(temp)  
                if name not in temperatures:  
                    temperatures[name] = []  
                temperatures[name].append(temp)  
    except FileNotFoundError:  
        print(f"文件 {filename} 不存在,将创建一个新文件。")  
        create_temperature_file(filename)  
        return {}  
    return temperatures  
  
def create_temperature_file(filename):  
    with open(filename, 'w') as file:  
        pass
    print(f"已创建新文件 {filename},请手动输入体温数据。")  
  
def check_consecutive_fever(temperatures, fever_threshold=37.2):  
    max_consecutive_days = 0  
    for name, records in temperatures.items():  
        consecutive_days = 0  
        for i in range(len(records) - 2):  
            if all(record >= fever_threshold for record in records[i:i+3]):  
                consecutive_days += 1  
                if consecutive_days > max_consecutive_days:  
                    max_consecutive_days = consecutive_days  
        if consecutive_days > 0:  
            print(f"{name}同学有连续发热的情况,最长连续{consecutive_days + 2}天。")  
    if max_consecutive_days == 0:  
        print("没有学生出现连续三天发热的情况。")  
    else:  
        print(f"最长连续发热天数为:{max_consecutive_days + 2}天。")  
  
def main():  
    filename = 'temperature_records.txt'  
    temperatures = read_temperatures(filename)  
    check_consecutive_fever(temperatures)  
  
if __name__ == '__main__':  
    main()

7.图书管理系统_实例对象法

import json


class BookManager:
    def __init__(self):
        self.books_dict = self.load_books()

    def save_books(self):
        """将图书信息保存到文件"""
        with open('books.json', 'w') as f:
            json.dump(self.books_dict, f)
        print("图书信息已保存到文件。")

    def load_books(self):
        """从文件中加载图书信息"""
        try:
            with open('books.json', 'r') as f:
                return json.load(f)
        except FileNotFoundError:
            return {}
        except json.JSONDecodeError:
            return {}

    def add_book(self):
        """增加图书信息"""
        book_id = input("请输入图书id:")
        book_name = input("请输入图书的名称:")
        book_position = input("请输入图书的位置:")
        is_lend = False

        self.books_dict[book_id] = {"book_name": book_name,
                                    "book_position": book_position,
                                    "is_lend": is_lend
                                    }
        print(f"数据添加成功:{self.books_dict[book_id]}")
        self.save_books()

    def del_book(self):
        """删除图书信息"""
        book_id = input("请输入图书id:")
        if book_id in self.books_dict:
            book_info = self.books_dict.pop(book_id)
            print(f"删除图书:{book_id}:{book_info}")
            print("图书删除成功。")
            self.save_books()
        else:
            print(f"图书ID:{book_id} 不存在。")

    def select_book(self):
        """查找图书信息"""
        print("1:查找详细的图书 2:查找已借出的图书 3:查看所有的图书信息")
        sub_code = input("请输入需要使用的功能:")

        if sub_code == "1":
            book_id = input("请输入图书的id:")
            if book_id in self.books_dict:
                print(self.books_dict[book_id])
            else:
                print(f"图书ID:{book_id}不存在。")

        elif sub_code == "2":
            for book_id, book_info in self.books_dict.items():
                if book_info["is_lend"]:
                    print(f"{book_id}: {book_info}")

        elif sub_code == "3":
            for book_id, book_info in self.books_dict.items():
                print(f"{book_id}: {book_info}")

    def modify_book(self):
        """修改图书位置"""
        book_id = input("请输入图书的id:")
        if book_id in self.books_dict:
            book_position = input("请输入图书存放的位置:")
            self.books_dict[book_id]["book_position"] = book_position
            print(f"修改后的数据:{book_id}: {self.books_dict[book_id]}")
            self.save_books()
        else:
            print(f"图书ID:{book_id}不存在。")

    def give_back(self):
        """图书的归还"""
        book_id = input("请输入需要归还图书的id:\n")
        if book_id in self.books_dict:
            self.books_dict[book_id]["is_lend"] = False
            print(f"归还成功:{book_id}:{self.books_dict[book_id]}")
            self.save_books()
        else:
            print(f"图书ID:{book_id}不存在。")

    def lend_book(self):
        """图书借出"""
        book_id = input("请输入需要借出图书的id:\n")
        if book_id in self.books_dict:
            self.books_dict[book_id]["is_lend"] = True
            print(f"借出成功:{book_id}:{self.books_dict[book_id]}")
            self.save_books()
        else:
            print(f"图书ID:{book_id}不存在。")

book_manager = BookManager()

while True:
    print("-" * 90)
    print("1、添加图书 2、删除图书 3、查找图书位置 4、修改图书位置 5、图书归还 6、图书借出 0、退出程序")
    func_code = input("请输入你需要的功能:")
    print("-" * 90)

    if func_code == "1":
        book_manager.add_book()
    elif func_code == "2":
        book_manager.del_book()
    elif func_code == "3":
        book_manager.select_book()
    elif func_code == "4":
        book_manager.modify_book()
    elif func_code == "5":
        book_manager.give_back()
    elif func_code == "6":
        book_manager.lend_book()
    elif func_code == "0":
        print("程序已成功退出!")
        break
    else:
        print("输入的功能无效,请重新输入!")

8. 图书管理系统_函数法

import json

def save_books():
    """将图书信息保存到文件"""
    with open('books.json', 'w') as f:
        json.dump(books_dict, f)
    print("图书信息已保存到文件。")

def load_books():
    """从文件中加载图书信息"""
    try:
        with open('books.json', 'r') as f:
            return json.load(f)
    except FileNotFoundError:
        return {}

books_dict = load_books()

def add_book():
    """增加图书信息"""
    book_id = input("请输入图书id:")
    book_name = input("请输入图书的名称:")
    book_position = input("请输入图书的位置:")
    is_lend = False

    books_dict[book_id] = {"book_name": book_name,
                           "book_position": book_position,
                           "is_lend": is_lend
                           }
    print(f"数据添加成功:{books_dict[book_id]}")
    save_books()

def del_book():
    """删除图书信息"""
    book_id = input("请输入图书id:")
    if book_id in books_dict:
        book_info = books_dict.pop(book_id)
        print(f"删除图书:{book_id}:{book_info}")
        print("图书删除成功。")
        save_books()
    else:
        print(f"图书ID:{book_id} 不存在。")

def select_book():
    """查找图书信息"""
    print("1:查找详细的图书 2:查找已借出的图书 3:查看所有的图书信息")
    sub_code = input("请输入需要使用的功能:")

    if sub_code == "1":
        book_id = input("请输入图书的id:")
        if book_id in books_dict:
            print(books_dict[book_id])
        else:
            print(f"图书ID:{book_id}不存在。")

    elif sub_code == "2":
        for book_id, book_info in books_dict.items():
            if book_info["is_lend"]:
                print(f"{book_id}: {book_info}")

    elif sub_code == "3":
        for book_id, book_info in books_dict.items():
            print(f"{book_id}: {book_info}")

def modify_book():
    """修改图书位置"""
    book_id = input("请输入图书的id:")
    if book_id in books_dict:
        book_position = input("请输入图书存放的位置:")
        books_dict[book_id]["book_position"] = book_position
        print(f"修改后的数据:{book_id}: {books_dict[book_id]}")
        save_books()
    else:
        print(f"图书ID:{book_id}不存在。")

def give_back():
    """图书的归还"""
    book_id = input("请输入需要归还图书的id:\n")
    if book_id in books_dict:
        books_dict[book_id]["is_lend"] = False
        print(f"归还成功:{book_id}:{books_dict[book_id]}")
        save_books()
    else:
        print(f"图书ID:{book_id}不存在。")

def lend_book():
    """图书借出"""
    book_id = input("请输入需要借出图书的id:\n")
    if book_id in books_dict:
        books_dict[book_id]["is_lend"] = True
        print(f"借出成功:{book_id}:{books_dict[book_id]}")
        save_books()
    else:
        print(f"图书ID:{book_id}不存在。")


while True:
    print("-" * 100)
    print("1、添加图书 2、删除图书 3、查找图书位置 4、修改图书位置 5、图书归还 6、图书借出 0、退出程序")
    func_code = input("请输入你需要的功能:")
    print("-" * 100)

    if func_code == "1":
        add_book()
    elif func_code == "2":
        del_book()
    elif func_code == "3":
        select_book()
    elif func_code == "4":
        modify_book()
    elif func_code == "5":
        give_back()
    elif func_code == "6":
        lend_book()
    elif func_code == "0":
        print("程序已退出。")
        break
    else:
        print("输入的功能无效,请重新输入!")

 9.book

books=[]
def add():
    id=input('请输入图书的索书号:')
    name=input('请输入图书书名')
    year=input('请输入图书的出版年份')
    book={'id':id,'name':name,'year':year}
    books.append(book)
    print('新增书籍成功!')

def remove():
    id=input('请输入需要删除的图书的索书号:')
    for book in books:
        if book['id']==id:
            books.remove(book)
            print('删除成功!')
            break
    else:
        print('找不到这本书')

def search():
    id=input('请输入需要查询的图书的索书号:')
    for book in books:
        if book['id']==id:
            print('书籍信息为:',book)
            break
    else:
        print('找不到这本书')

def edit():
    id = input('请输入需要查询的图书的索书号:')
    for book in books:
        if book['id'] == id:
            book['name']=input('请输入修改后的书籍名')
            book['year']=input('请输入修改后的出版年份')
            print('修改成功')
            break
    else:
        print('找不到这本书')

def main():
    while True:
        print('欢迎使用图书管理系统')
        print('1.新增图书信息')
        print('2.删除图书信息')
        print('3.查询图书信息')
        print('4.修改图书信息')
        print('5.退出系统')
        option=input('请输入操作选项:')
        if option=='1':
            add()
        elif option=='2':
            remove()
        elif option=='3':
            search()
        elif option=='4':
            edit()
        elif option=='5':
            print('感谢使用,再见!')
            break
        else:
            print('输入错误请重新输入!')

if __name__=='__main__':
    main()

10.歌单

import random
gequ=["《我的未来不是梦》","《我相信》","《相信自己》",
      "《从头再来》","《飞得更高》","《爱拼才会赢》"]
gequ.append("《超越梦想》")
gequ.pop(1)
print("——显示全部歌单——")
for j in gequ:
    print("第",gequ.index(j)+1,"首:",j)
p="y"
bofang=[]
while p=="y":
    n=int(input("输入你想听的歌曲(输入序号):"))
    bofang.append(gequ[n-1])
    p=input("你想继续选择歌曲吗?(y:继续,n:结束):")
print(bofang)

 11.集合课后练习

# 选课程序,每一位学生可以任意选择1~3门选修课程,现对学生选择的课程进行统计,将全体学生的选课情况汇总到一起(使用集合),
# 当有学生选择某门课程时,开设这门课程,列出所有开设的选修课程,以及无人选择的课程,并统计每门课程选修的人数(使用字典)。

courses_set = set()  
course_counts = {}  

student_choices = [[1, 2], [3], [1, 3], [2]]  
  
for student_choice in student_choices:   
    courses_set.update(student_choice)    
    for course in student_choice:  
        if course in course_counts:  
            course_counts[course] += 1  
        else:  
            course_counts[course] = 1  
  
print("所有开设的选修课程:", sorted(courses_set))  
    
all_courses = set(range(1, max(courses_set) + 1))  
unselected_courses = all_courses - courses_set  
print("无人选择的课程:", sorted(unselected_courses))  
   
print("每门课程选修的人数:")  
for course, count in course_counts.items():  
    print(f"课程 {course}: {count} 人")

12.fibonaqcci数列 

"""
    输出fibonacci数列的前n项
"""

def fibonacci(n):
    sequence = []
    a, b = 0, 1
    for i in range(n):
        sequence.append(a)
        a, b = b, a+b
    return sequence

num = int(input("请输入需要输出数列的位数:"))
print(fibonacci(num))

13.冒泡排序

"""
    使用sort可直接排序
"""

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

def inpuData(arr):
    n = int(input("请输入需要排序的个数:"))
    for i in range(n):
        num = int(input("请输入第{}个数字:".format(i+1)))
        arr.append(num)
    return arr
arr = []
inpuData(arr)
bubble_sort(arr)
print("冒泡排序后的数组为:", arr)

14.生肖判断

生肖判断

zodiacs = ('鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪')

birth_year = int(input("请输入你的出生年份:"))
zodiac_index = (birth_year - 1912) % 12
zodiac = zodiacs[zodiac_index]
print("你的生肖是:" + zodiac)

start_year = int(input("请输入起始年份:"))
end_year = int(input("请输入结束年份:"))

same_zodiac_years = []
for year in range(start_year, end_year + 1):
    if (year - 1912) % 12 == zodiac_index:
        same_zodiac_years.append(year)

print("从", start_year, "年到", end_year, "年内和你生肖相同的年份有:", same_zodiac_years)

15.餐馆点菜

menu = {
    '鱼香肉丝': 6,
    '宫保鸡丁': 5,
    '红烧肉': 1,
    '麻婆豆腐': 3,
    '莲白回锅肉': 4,
    '凉拌鸡丝': 5,
    '锅包肉': 6
}

order = {}

while True:
    print("菜单:")
    for dish, stock in menu.items():
        if stock > 0:
            print(dish, "(库存:", stock, ")")
        else:
            print(dish, "(已售完)")

    choice = input("请选择菜品(输入菜名):")
    if choice in menu:
        if menu[choice] > 0:
            order[choice] = order.get(choice, 0) + 1
            menu[choice] -= 1
            print("已选择", choice)
        else:
            print("抱歉,该菜品已售完!")
    else:
        print("菜品不存在,请重新选择!")

    continue_choice = input("是否继续选择菜品?(是/否)")
    if continue_choice == '否':
        break

print("您的点餐结果:")
for dish, quantity in order.items():
    print(dish, "x", quantity)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值