學習中,都是從書上找的一些編程小練習。
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())
運行情況: