python练习题

第一题:
输出99乘法表

for one in range(1,10):
    for i in range(1,one+1):
        print('{}*{}={}'.format(i,one, one*i),end=' ')
    print('')

第二题:
冒泡排序

a=[2,4,1,6,43,674,23,56,98]
for i in range(1,len(a)):
    for j in range(0,len(a)-1):
        if a[j]>a[j+1]:
            a[j],a[j+1]=a[j+1],a[j]
print(a)

第三题:
自动贩卖机:只接受1元、5元、10元的纸币或者硬币,可以1块、5元 、 10元。最多不超过10元
饮料只有橙汁,椰汁,矿泉水,早餐奶售价分别是3.5, 4, 2, 4.5
写一个函数用来表示贩卖机的功能:用户投钱和选择饮料,并通过判断之后该用户吐出饮料和找零

drinks={'1': 3.5,
            '2': 4,
           '3': 2,
           '4': 4.5
            }
total=0
while True:
    choose=input('请选择您需要的饮料:1:橙汁, 2:椰汁, 3:矿泉水, 4:早餐奶, q:退出')
    if choose in drinks.keys():
        total=total+drinks[choose]
    elif choose == 'q':
        print('退出选择饮料')
        break
    else:
        print('没有您需要的饮料,请重新选择')

toubi=0
while True:
    money = input('请投币1, 5, 10元面值的纸币或者硬币 ,按q退出')
    if money== '1' or money== '5' or money== '10':
        toubi=toubi+int(money)
        if toubi > total:
            print('您购买了{}钱的饮料,投币{}元,找零{}元,请拿走零钱跟饮料'.format(total,toubi,toubi-total))
            break
        elif toubi<total:
            print('您购买了{}钱的饮料,投币{}元,还需支付{}元'.format(total, toubi, total-toubi))
        else:
            print('您购买了{}钱的饮料,投币{}元,请拿走零钱跟饮料'.format(total, toubi))
            break
    else:
        print('请投入正确的面值')

第四题:
每隔2s随机生成一百个数

第一种写法
import time
import random

while True:
    num=range(0,100)
    nums=random.sample(num,100)
    print(nums)
    time.sleep(2)
第二种写法
import threading

def fun_time():
    global timer
    num=range(0,100)
    nums=random.sample(num,100)
    print(nums)
    timer = threading.Timer(2, fun_time)
    timer.start()

timer=threading.Timer(1,fun_time)  #第一次执行函数的时间是一秒,后面都是每隔两秒调用一次
timer.start()
time.sleep(60)  #60秒后停止定时器
timer.cancel() #停止定时器工作

第五题:
定义一个学生类
有下面几个属性:姓名、年龄、成绩(语文、数学、英语)[每课成绩的类型为整数],均放在初始化函数里面
类方法:
获取学生的姓名 get_name(),返回的类型str
获取学生的年龄 get_age(),返回的类型是Int
返回三门课中最高的分数,get_course(),返回类型是Int

results={"语文":100,"英语":80,"数学":98}
class Students:
    def __init__(self,name,age,results):
        self.name=name
        self.age=age
        self.results=results

    def get_name(self):
        print('姓名是'+self.name)

    def get_age(self):
        print('年龄是{}'.format(self.age))

    def max_course(self):
        for one in self.results:
            if self.results[one] == max(self.results.values()):
                print('三门课中分数最高的是{},成绩是{}'.format(one, max(self.results.values())))

s1=Students('张三',15,{"语文":100,"英语":80,"数学":98})
s1.get_name()
s1.get_age()
s1.max_course()

第六题:
定义一个游乐园门票的类,完成大人和儿童的总票价统计
人数不定,有你输入的个数决定
平时票价为100元
周末票价为平日票价的120%
儿童半价

price=100
class AmusenmentPark:

    def __init__(self,adultsnums,childrennums):
        self.adultsnums=adultsnums
        self.childrennums=childrennums

    def weekdays(self):
        sum=self.adultsnums * price + self.childrennums*(price / 2)
        return '有大人{}个,小孩{}个,大人的票价是{}元,小孩的票价是{}元,总计{}元'.format(self.adultsnums,self.childrennums,price,price / 2,sum)

    def weekend(self):
        sum=self.adultsnums * (price * 1.2)+self.childrennums*(price * 1.2 / 2)
        return '有大人{}个,小孩{}个,大人的票价是{}元,小孩的票价是{}元,总计{}元'.format( self.adultsnums, self.childrennums, price * 1.2, price * 1.2 / 2, sum)

    def summoney(self,today):
        if today == '周六' or today == '周日':
            print('今天是{}'.format(today)+ self.weekend())
        else:
            print('今天是{}'.format(today)+ self.weekdays())

A1=AmusenmentPark(4,2)
A1.summoney('周六')

第七题:
人和机器猜拳游戏写一个类
函数1 选择角色1曹操 2张飞 3刘备
函数2角色猜拳1剪刀 2石头 3布 玩家输入一个1到3的数字
函数3 电脑出拳 随机产生一个1,3的数字,提示电脑出拳的结果
函数4 角色和机器出拳对战,对战结束后,最后出示本剧对战结果嬴 输 然后提示用户是否继续,按y继续 n结束
最后结束的 时候输出结果,角色嬴几局 输几局,平局几次游戏结束

import random
class Games:
    role_data = {'1': '剪刀', '2': '石头', '3': '布'}

    def role(self):
        while True:
            data={'曹操':'1','张飞':'2','刘备':'3'}
            num=int(input('请输入角色:1代表曹操,2代表张飞,3代表刘备'))
            if num in range(1,4):
                for role in data:
                    if data[role] == num:
                        print('您选中的角色是{}'.format(role))
                break
            else:
                print('您输入的角色数字不对')
        return print(role)

    def role_game(self):
        while True:
            game_num=int(input('请输入角色猜拳:1剪刀  2石头  3布'))
            if game_num in range(1,4):
                break
            #return role_data[str(game_num)]
        return game_num

    def win_game(self):
        win_data = {'1': '剪刀', '2': '石头', '3': '布'}
        #return win_data[str(random.randint(1, 3))]
        return random.randint(1, 3)

# 函数4 角色和机器出拳对战,对战结束后,最后出示本局对战结果嬴 输  然后提示用户是否继续,按y继续 n结束
    def role_park_win(self):
        a = 0  # 角色赢
        b = 0  # 电脑嬴
        c = 0  # 平
        self.role()
        while True:
            role_game=self.role_game()
            win_game=self.win_game()
            win=role_game - win_game
            print('角色的出拳是{},电脑的出拳是{}'.format(self.role_data[str(role_game)], self.role_data[str(win_game)]))
            KO=input('游戏是否继续')
            if KO == 'n':
                break
            if win == -2 or win == 1 :
                a=a+1
                print('角色嬴,赢了{}局'.format(a))
            elif win == -1 or win == 2 :
                b=b+1
                print('电脑嬴,赢了{}局'.format(b))
            elif win == win:
                print('平局')
        print('角色赢了{}局,电脑赢了{}局,平局{}'.format(a, b, c))

if __name__ == '__main__':

    Games().role_park_win()

第八题:
简述:要求输入某年某月某日

提问:求判断输入日期是当年中的第几天?

time_data=input('请输入具体的年月日')
L=[]
data_time1=[31,29,30,30,31,30,31,31,30,31,30,31]
data_time2=[31,28,30,30,31,30,31,31,30,31,30,31]
sum=0
for one in time_data.split('-'):
    L.append(one)
try:
    if int(L[0]) % 4 == 0:
        for i in range(0,int(L[1])-1):
            sum=sum + data_time1[i]
    else:
        for i in range(0,int(L[1])-1):
            sum=sum + data_time2[i]

    print('输入的日期是全年的第{}天'.format(sum+int(L[2])))
except Exception as e:
    print('年月日格式输入错误')
    print(e)

第九题:
整数顺序排列问题简述:任意三个整数类型,x、y、z

提问:要求把这三个数,按照由小到大的顺序输出 Python解题思路分析:

L=[]
num1=int(input('请输入第一位数:'))
num2=int(input('请输入第二位数:'))
num3=int(input('请输入第三位数:'))
L.append(num1)
L.append(num2)
L.append(num3)
L.sort()
print(L)

Python 练习题是指设计用来提高编程技能和加深对Python语言理解的编程问题。这些练习题通常涉及不同的Python编程概念和技巧,从基础语法到高级主题都有涵盖。以下是一些常见的Python练习题类型: 1. 基础语法练习:这些练习帮助初学者熟悉Python的基本语法,比如变量声明、数据类型、控制结构(if-else语句、循环)以及函数定义等。 2. 数据结构操作:涉及Python内置的数据结构,如列表(list)、字典(dict)、元组(tuple)和集合(set)的操作练习,包括增删改查等。 3. 面向对象编程:包含类和对象的定义、继承、多态和封装等面向对象编程概念的实践题目。 4. 错误和异常处理:学习如何处理在代码执行过程中可能遇到的错误和异常。 5. 文件操作:练习如何在Python中读写文件,包括文本文件和二进制文件的操作。 6. 模块和包:学习如何导入和使用Python标准库中的模块,以及如何创建和使用自定义包。 7. 高级特性:练习Python的高级特性,比如列表推导式、生成器、装饰器和上下文管理器等。 8. 数据处理:包含使用Python进行数据分析和处理的练习,如使用Pandas库操作数据框(DataFrame)。 9. Web开发基础:涉及使用Flask或Django等框架进行简单的Web应用开发。 10. 测试:编写单元测试来验证代码的正确性。 通过解决这些问题,可以系统地提升Python编程技能,并在实际开发中更加得心应手。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值