python 每天练习题

python每天练习题


-前言
-第一题 猜数字游戏
-第二题 猜数字升级版,随机的答案
-第三题 整数的因式分解
-第四题 函数装饰器


前言

本群的作业,没有指定Python方向,而在于提升群内成员的语言功底,以便大家在Python的其他方向走的更远。
本群热烈欢迎任何程度的Python学习者
Python程序设计 群号:651707058

第一题 猜数字游戏

‘首先自已定义一个变量answer,假如answer = 55,然后提示让用户猜数字,’
‘如果用户猜的数字过大,就输出大了,如果猜的数字过小,就输出小了,直到用户’
‘猜对了,提示用户猜对了,并给出用户一共猜了多少次’
‘例如:answer = 55’
‘用户输入:60’
‘输出:大了’
‘用户输入:50’
‘输出:小了’
‘用户输入:55’
‘输出:正确,一共猜了3次’

print("猜数字,您只有10次机会:")
for i in range(1,10,1):
    number = input("第%d次:"%i)
    if int(number) <55:
        print("小了!")
        continue
    elif int(number)>55:
        print("大了!")
        continue
    else:
        print("正确,您一共猜了:%d次"%i)
        break

第二题 猜数字升级版,随机的答案

上一题answer是提前设置好的,代码不修改的话,每次运行正确的数字总是55,
现在我们需要将answer设置成随机的,这一次代码运行answer是89,下次运行
answer就变成另一个数字了

需要在上一题的基础上,再运用random模块里面的函数

import random
answer = random.randint(1,100) #正确答案
print("猜数字,您只有10次机会:")
for i in range(1,10,1):
    number = input("第%d次:"%i)
    if int(number) <answer:
        print("小了!")
        continue
    elif int(number)>answer:
        print("大了!")
        continue
    else:
        print("正确,您一共猜了:%d次"%i)
        break
#结果:
猜数字,您只有10次机会:
第1次:50
小了!
第2次:70
小了!
第3次:80
大了!
第4次:75
正确,您一共猜了:4次

作者四次,你试试能比作者更快么?

第三题 整数的因式分解

输入一个正整数n,对其进行因式分解并输出。

例如:输入18,输出18=2*3*3

x = []   #存放因子
number = int(input("输入一个正整数:"))
for i in range(2,number+1):
    while number!=1:
        if number % i == 0:
            number = number / i
            print(number)
            x.append(i)
            x.append("*")
            if number == i:
                x.append(i)
                break
        else:
            break
print(x)

第四题 函数装饰器

‘设计一个函数装饰器,这个装饰器可以记录任意函数单次调用的运行时间。’
‘如果函数的运行时间小于1秒,就不输出其运行时间,否则输出此函数的运行’
‘时间。所以我们需要写运行时间小于1秒的函数和运行时间大于1秒的函数去’
额,作者是新手,不会装饰器,谅解哦,大家可以参考这个大佬的:
https://blog.csdn.net/tobe_numberone/article/details/81407977

import time
def deco(func):
    def wrapper(*args,**kwargs):
        start = time.time()
        res = func(*args,**kwargs)
        time_used = time.time()-start
        if time_used >=1:
            print(f'{func.__name__}函数运行时间为1s及以上')
        return time_used
    return wrapper
@deco
def f1(a):
    print(a)
    time.sleep(2)       #让f1运行时间保存2秒
@deco
def f2(a):
    print(a)

f1(1)   #只有f1会额外输出时间为1s及以上
f2(2)

感谢大家的阅读。

猜你喜欢

转载自blog.csdn.net/weixin_42878758/article/details/81412339
今日推荐