学习中,都是从书上找的一些编程小练习。
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())
运行情况: