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())

運行情況:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM