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

运行情况:

 

posted @ 2018-07-11 22:02  奢华使命  阅读(22520)  评论(2编辑  收藏  举报