描述
编写程序计算如下数列的值:
1-2+3-4…966
其中,所有数字为整数,从1开始递增,奇数为正,偶数为负
#Week4Test.py
sumA,sumB = 0,0
for i in range(1,967,2):
sumA += i
for j in range(2,967,2):
sumB += j
sumC = sumA - sumB
print(sumC)
描述
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
#Week4TestPrime.py
#素数从2开始,先加上,最后一个是97,偶数肯定不是,步长为2
sumPrime = 2
for i in range(3,98,2):
for j in range(2,i):
#可以被整除就不是素数
if i % j == 0:
break
#i是素数
elif j == i-1:
sumPrime += i
#print(i)
print(sumPrime)
#Week4TestPassRate.py
#合格标准
Line = eval(input())
#再次输入
TempStr = input()
Count,PassNUM = 0,0
#每输如一个数进行一次比较,比较完成后再次输入,如果不是空格则继续循环
#注意单引号里啥也没有
while TempStr != '':
Count += 1
num = eval(TempStr)
if num >= Line:
PassNUM += 1
TempStr = input()
#为了防止只输入了及格线
if Count == 0:
print("合格率为100.00%")
else:
print("合格率为{:.2f}%".format(PassNUM / Count * 100))
描述
四叶玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数)
#Week4TestPower.py
for i in range(1000,10000):
NUM = i
SUM = 0
for j in range(4):
SUM += pow(NUM % 10,4)
NUM //= 10
if SUM == i:
print(i)
描述
给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。
#Week4TestLogin.py
Name = "Kate"
Code = "666666"
count = 0
for i in range(3):
NameStr = input()
CodeStr = input()
if NameStr == Name and CodeStr == Code:
print("登录成功!")
break
else:
count += 1
if count == 3:
print("3次用户名或者密码均有误!退出程序。")
描述
编写一个算法来确定一个数字是否“快乐”。 快乐的数字按照如下方式确定:从一个正整数开始,用其每位数的平方之和取代该数,并重复这个过程,直到最后数字要么收敛等于1且一直等于1,要么将无休止地循环下去且最终不会收敛等于1。能够最终收敛等于1的数就是快乐的数字。
当输入时快乐的数字时,输出True,否则输出False。
#TestHappyNum.py
#TestHappyNum.py
import time as t
start = t.perf_counter()
strNUM = input()
length = len(strNUM)
num = eval(strNUM)
result = 0
#找到快乐数或者超时退出
while result!= 1 and t.perf_counter() - start < 1.95:
for i in range(length):
#从个位数开始算,逐步除以10
result += pow(num % 10,2)
num //= 10
if i == length - 1:
if result == 1:
print("True")
break
#还没有算到1,继续往下计算
else:
length = len(str(result))
i = 0
num = result
#print(result)
result = 0
if result != 1:
print("False")
#TestHappyNumV2.py
num = eval(input())
Record = []
def ifHappyNum(n):
#每重新调用一次数字就重新初始化一次
sumNUM = 0
lengthNUM = len(str(n))
for i in range(lengthNUM):
sumNUM = sumNUM + (n % 10) ** 2
n //= 10
#print(sumNUM)
n = sumNUM
#是快乐数
if sumNUM == 1:
return True
#不是1,看看是否出现过,出现过则会出现循环,输出False
elif sumNUM in Record:
return False
#不是1但是还没出现过,将数放入Record中,继续递归调用计算
else:
Record.append(sumNUM)
#print(Record)
return ifHappyNum(n)
#调用函数
RES = ifHappyNum(num)
print(RES)
递归调用的时候要return ifHappyNum(n)
#TestHappyNumV3.py
num = eval(input())
Record = []
while True:
#每重新调用一次数字就重新初始化一次
sumNUM = 0
lengthNUM = len(str(num))
for i in range(lengthNUM):
sumNUM = sumNUM + (num % 10) ** 2
num //= 10
#print(sumNUM)
num = sumNUM
#是快乐数
if sumNUM == 1:
print("True")
break
#不是1,看看是否出现过,出现过则会出现循环,输出False
elif sumNUM in Record:
print("False")
break
#不是1但是还没出现过,将数放入Record中,继续递归调用计算
else:
Record.append(sumNUM)
#print(Record)
描述
获得用户输入的整数n,输出 1!+2!+…+n!的值。
如果输入数值为0、负数、非数字或非整数,输出提示信息:输入有误,请输入正整数。
输入格式
使用input()获得系统输入,不增加额外的提示信息。
#Test4Factorial.py
n = input()
def FactorialFun():
sumFac,sumSum = 1,0
for i in range(1,eval(n)+1):
sumFac *= i
sumSum += sumFac
return sumSum
if n.isdigit() == False or eval(n) <= 0:
print("输入有误,请输入正整数")
else:
result = FactorialFun()
print(result)
n.isdigit()判断是否是数字
#CalFactorialV2.py
def Factorial(n):
if n == 0:
return 1
return n * Factorial(n-1)
num = eval(input())
sumFac = Factorial(num)
print(sumFac)
做这道题的时候突然想递归了,但这个代码只是递归求阶乘n!而已
描述
成绩分数百分制转为五级制的判断输出(建议使用异常处理try-except-else-finally)。
具体要求如下:
1)输入一个[0-100]内成绩数据,输出相应等级(A、B、C、D、E),如输入为99,第一行输出为“输入成绩属于A级别。”;
2)当输入数据为其他字符或者超过范围,则输出“输入数据有误!”;
3)当成绩等级为A、B、C、D,则换行输出“祝贺你通过考试!”;
4)使用finally实现无论输入任何数据,均在最后输出“好好学习,天天向上!
输入格式
输入一个正整数,输入使用input(),不要增加额外的提示信息,可以 eval(input()) 转换为正整数。
#ScoreConvert.py
try:
#如果输入非数字则会转到数据有误
Score = eval(input())
Qual = ''
if 60 <= Score <= 100:
if Score >= 90:
Qual = 'A'
elif Score >= 80:
Qual = 'B'
elif Score >= 70:
Qual = 'C'
elif Score >= 60:
Qual = 'D'
print("输入成绩属于{}级别。".format(Qual))
print("祝贺你通过考试!")
elif 0 <= Score < 60:
Qual = 'E'
print("输入成绩属于{}级别。".format(Qual))
#数字超过范围
else:
print("输入数据有误!")
except NameError:
print("输入数据有误!")
finally:
print("好好学习,天天向上!")