Python编程练习(一)
学习中,都是从书上找的一些编程小练习。
1,编写一个程序,他以球体的半径(浮点数)作为输入,并输出球体的直径、圆周长、表面积、体积。
def ball(): while True: try: p = 3.14 r = float(input("请输入球体半径:")) if r <= 0: print("输入的球体半径不能小于0!") else: print("球体的直径是:%.3f"%(r*2)) print("球体的圆周长是:%.3f"%(2*p*r)) print("球体的表面积是:%.3f"%(4*p*(r**2))) print("球体的体积是:%.3f"%((4/3)*p*pow(r,3))) break except ValueError: print("输入错误,请输入数字!") if __name__ == "__main__": ball()
2,一个雇员一周的总薪水,等于其每小时的时薪,乘以其一周工作的正常小时数,再加上加班费。加班费等于总的加班时间,乘以每小时薪水的1.5倍。
编写一个程序,以每小时的薪水,常规工作时间,加班工作时间作为参数,显示一个雇员的总周薪。
def money(): while True: try: x = int(input("请输入本周常规工作时间(小时):")) if x < 0: print("一周常规工作时间不能小于0小时!") elif x > 40: print("一周常规工作时间不能超过40小时!") else: break except ValueError: print("输入错误!请输入整数!") while True: try: y = int(input("请输入本周加班时间(小时):")) if y < 0: print("一周的加班时间不能小于0小时!") else: break except ValueError: print("输入错误!请输入整数!") while True: try: z = float(input("请输入您的时薪:")) if z < 0: print("您的时薪工资不能小于0!") else: break except ValueError: print("输入错误!请输入整数!") print("-"*30) print("您的常规上班时间是:%d小时"%(x)) print("您的加班时间是:%d小时"%(y)) print("您的时薪是:%.2f元/小时"%(z)) print("您的周工资是:%.2f元" % ((x * z) + (y * 1.5 * z))) if __name__ == "__main__": money()
3.一个标准的科学实验是,抛球并且看它能够弹跳多高。一旦球的“弹跳性”已经确定了,这个比率值就会给出弹跳性的指数。例如,如果球从10米高落下弹跳到6米高,这个索引就是0.6,并且球在一次弹跳之后总的运动距离是16米。如果球继续弹跳,两次弹跳后的距离将会是10米+6米+6米+3.6米=25.6米。注意,每次后续的弹跳运动的距离,都是到地板的距离加上这个距离的0.6倍,这个0.6倍就是球反弹回来的距离。编写一个程序,让用户输入球的一个初始高度以及允许球持续弹跳的次数。输出应该是球所运动的总距离。
def ball(): while True: try: x = int(input("请输入弹跳次数:")) if x < 0: print("弹跳次数不能小于0!") start_lang = float(input("请输入初始高度:")) if start_lang <= 0: print("初始高度必须大于0!") while x > 0: end_lang = start_lang*0.6 start_lang = start_lang+end_lang x = x-1 print("弹跳总长度:%.2f"%(start_lang)) break break except ValueError: print("输入错误,请从新输入!") ball()
4 .编写一个程序,让用户输入文件名并且向终端输出报表,展示在给定的周期应该向每一位雇员支付的工资。这个报表应该是表格的格式,并且具有相应的表头。每一行应该包含雇员的名称、工作的小时数,以及该周期所支付的工资。
from prettytable import PrettyTable class zhou_money(): def __init__(self): self.name_form = PrettyTable(["雇员名称","工作小时","周工资"]) self.break_flag = True def __str__(self): print(self.name_form) #获取用户输入 def add_salary(self): while self.break_flag == True: try: self.add_name = input("请输入雇员名称:") self.add_time = int(input("请输入工作小时:")) if self.add_time < 0: print("工作小时不能少于0小时!") continue self.add_Hoursmoney = float(input("请输入时薪:")) if self.add_Hoursmoney <= 0: print("工作时薪必须大于0元每小时") continue self.add_day_money = self.add_time*self.add_Hoursmoney self.Wage_scale() self.confirm() break except ValueError: print("输入错误,请从新输入!") self.break_flag == False #列表中添加保存用户输入记录 def Wage_scale(self): self.name_form.add_row([self.add_name,self.add_time,self.add_day_money]) #添加结束判断 def confirm(self): while self.break_flag == True: try: self.add_confrim = input("添加完毕,是否继续添加(Y/N):") if self.add_confrim.isalpha() == False: print("请输入字母进行操作!") elif self.add_confrim == "Y": self.add_salary() break elif self.add_confrim == "N": break except ValueError: print("输入错误,请从新输入!") print(1) self.break_flag == False test = zhou_money() test.add_salary() test.__str__()
执行效果:
5 .针对图书馆的一个简单的软件系统,会将图书馆建模为图书和读者的一个集合。每本图书有一个等待借阅的读者的列表。每本图书有一个标题、一个作者、已经借阅了它的一名读者,以及等待这本图书还回后再继续借阅读者的列表。
# -*- coding: UTF-8 -*- from prettytable import PrettyTable import pymysql class book(): #初始化数据库 def __init__(self): self.db = pymysql.connect("47.101.56.243","root","dingcji652@","mytest",charset="utf8") self.cursor = self.db.cursor() #调取图书列表 def book_list(self): bk_list = PrettyTable(['图书编号','图书名称','图书作者','图书状态']) self.cursor.execute("SELECT * FROM book") for r in self.cursor: bk_list.add_row(r) print(bk_list) return bk_list #新增图书 def add_book(self): falg = True while falg == True: x = input("请输入新增书的名称:") y = input("请输入新增书的作者:") sql_select = "INSERT INTO book(book_name, book_author, book_state) VALUES ('%s', '%s', '%d')" % (x, y, 0) self.cursor.execute(sql_select) self.db.commit() print("新增成功!") while falg == True: z = input("是否继续新增图书(Y/N):") if z == "Y": self.add_book() elif z == "N": falg = False else: print("输入错误,检查输入!") self.book_list() #借阅图书 def Borrowing_book(self): print(self.book_list()) x = int(input("请输入你要借阅的图书ID:")) sql_update ="update book set book_state = '%d' where book_id = %d" self.cursor.execute(sql_update % (1,x)) self.db.commit() print("借阅成功!") #归还图书 def return_book(self): x = int(input("请输入你要归还的图书ID:")) sql_update ="update book set book_state = '%d' where book_id = %d" self.cursor.execute(sql_update % (0,x)) self.db.commit() print("归还成功!") #用户视图列表 def view_admin(self): s_list = PrettyTable(["欢迎使用图书管理系统V0.1"]) s_list.add_row(["1:查看列表"]) s_list.add_row(["2:新增图书"]) s_list.add_row(["3:借阅图书"]) s_list.add_row(["4:归还图书"]) print(s_list) i = int(input("请输入序列号进行操作:")) if i == 1: self.book_list() elif i == 2: self.add_book() elif i == 3: self.Borrowing_book() elif i == 4: self.return_book() else: print("输入错误,检查输入!") if __name__ == '__main__': r = book() print(r.view_admin())
运行情况: