循环-小练习

"""

  1. 请输入考试分数,并判断考试成绩的等级
    score >= 85 A
    score >= 75 B
    score >= 60 C
    score >= 40 D
    score >= 0 E
    """
def inputfloat(score ="请输入您的分数:"):
    while True:
        data = input(score)
        try:
            inputData = eval(data) #去除字符创的引号
            if type(inputData) == float or int:
                # break
                return inputData
        except:
            print('输入错误')
            pass
if __name__ == "__main__":
    score = inputfloat()
    if score >= 85:
        print("A")
    elif score >= 75:
        print('B')
    elif score >= 60:
        print('C')
    elif score >= 40:
        print('D')
    elif score >= 0:
        print('E')
    else:
        print('输入成绩应为0-无限大')

"""
输入一个五位数,请判断是否为回文数
"""

num = int(input("请输入一个五位数:"))
num1 = str(num)
if len(num1) != 5:
    print('输入的不是五位数')
elif num1[0]==num1[4] and num1[1]==num1[3]:
    print(num,'是个回文数')
else:
    print(num,'不是回文数')

"""
1、 用户登陆程序需求:
1. 输入用户名和密码;
2. 判断用户名和密码是否正确? (name='root', passwd='westos')
3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 提示错误次数过多,账号已被冻结
"""

n = 1
while n <= 3:
    name = input('请输入你的用户名:')
    password = input('请输入你的密码:')
    if name == 'root' and password == 'westos':
        print('登录成功')
        break
    n=n+1
else:
    print('输入错误次数过多,账号已被冻结')

"""

2、使用了 while 来计算 1 到 100 的总和
"""

n =1
sum = 0
while n <=100:
    sum = sum +n
    n = n + 1
print(sum)

"打印乘法表"

#间距一样
for i in range(1,10):
    # print(' '*8*(i-1),end='')
    for j in range(1,i+1):
        product = i *j
        if j > 1 and product <10:#这个范围的积是个位数
            product = ' '+str(product) #补空格
        else:
            product = str(product)
        print('%d*%d=%s\t'%(i,j,product),end='')
        # print('{0}*{1}={2}\t'.format(i,j,product),end='')#\t横向制表符
    print()

"""
1、剪刀石头布游戏:
游戏开始,输入数字表示选项:退出【0】石头【1】剪刀【2】布【3】
游戏结束,计算游戏者的胜率
提示:人机游戏,机器可随机出拳
"""

import random
print('游戏开始,输入数字表示选项:退出[0]石头[1]剪刀[2]布[3]')
count =0
sum =0
shenglv =0
rand = random.randint(1,4)
num = int(input('输入你的选项:\n'))
print('机器出拳',rand)
while num != 0:
    if (num,rand) in [(1,2),(2,3),(3,1)]:
        count += 1
        sum += 1
    else:
        sum += 1
    num = int(input('请输入你的选项:\n'))
    rand = random.randint(1,4)
    print('机器出拳',rand)
if sum == 0:
    shenglv = 0
else:
    shenglv = count / sum
print(count,sum)
print('你一共玩了%d局,胜率为%.2f%%' % (sum,shenglv*100))

"""
求十万内的素数,并打印运算次数,运算时间,正确情况下效率越高越好
"""

print(2)
count = 1
sum = 0
import time
start = time.perf_counter()
for i in range(3,100000,2):#进入循环的都是奇数
    for n in range(3,int(i**0.5)+1,2):#奇数除偶数不能整除,所以跳过
        sum += 1
        if i % n == 0 :
            break
    else:
        print(i)
        count+=1
end = time.perf_counter()
print('一共有%d个素数'%count)
print('算了%d次'% sum)
print('run:%ss'%(end-start))

你可能感兴趣的:(循环-小练习)