PythonMOOC东北大学
第九周单元作业
1密码校验(10分)
题目内容:
校验密码是否合法:编写程序提示用户输入一个密码,要求长度在5-10位,密码里必须包含大写字母、小写字母和数字。根据用户输入会返回相应提示信息:如果密码长度不合法,返回“The length of password must in range of 5-10”;如果密码内容不合法,返回"Password must include uppercase,lowercase and digit",否则返回“Password input success”。提示:可利用S.isdisjoint(T)方法,如果集合S与T没有相同元素,返回True。
#1.密码校验
password=input()
numlower = 0
numisupper = 0
numdigit = 0
if 5<=len(password)<=10:
for p in password:
if p.islower():
numlower+=1
elif p.isupper():
numisupper+=1
elif p.isdigit():
numdigit+=1
if numlower > 0 and numdigit > 0 and numisupper > 0:
print('Password input success')
else:
print('Password must include uppercase,lowercase and digit')
else:
print('The length of password must in range of 5-10')
2稀疏矩阵存储(10分)
题目内容:
稀疏矩阵是一系列数字,其中大部分项是0。存储稀疏矩阵的一个高效方式是字典,其中键是非0值的位置,值是序列中该位置对应的值。例如,序列0 0 0 0 0 4 0 0 2 9可以表示为字典{5:4,8:2,9:9}。编写函数sparseArraySum,参数是两个这样的字典a和b,得到一个表示向量和的稀疏矩阵。也就是说,结果中位置i的值是a和b中位置i上值的和。假设稀疏矩阵数字序列长度为10。
输入格式:
两个表示稀疏矩阵的数字序列,数字之间空格分隔,结尾无空格,回车换行输入下一个数字序列
输出格式:
一个表示稀疏矩阵求和结果的数字序列,数字之间空格分隔,结尾无空格
输入样例:
1 0 3 0 0 4 0 0 2 6
6 0 0 0 1 2 0 0 0 3
输出样例:
7 0 3 0 1 6 0 0 2 9
#使用列表
a=list(map(eval,input().split()))
b=list(map(eval,input().split()))
c=[]
for i in range(len(a)):
num=str(a[i]+b[i])
c.append(num)
d=" ".join(c)
print(d)
期末新试卷
1输入某个年份,输出该年有多少天。
year=int(input())
months=[31,28,31,30,31,30,31,31,30,31,30,31]
if year%4==0 and year%100!=0 or year%400==0:
print(366)
else:
print(365)
2.因子函数(10分)
题目内容:
6的因子有1,2,3和6,它们的平方和是1 + 4 + 9 + 36 = 50。如果f(N)代表正整数N所有因子的平方和,例如f(6) = 50,现在令 F 代表 f 的求和函数, 亦即F(N) = f(1) + f(2) + .. + f(N), 例如F(3) = f(1) + f(2) + f(3) = 1 + 5 + 10 = 16. 从键盘输入正整数N, 输出 F(N) 的值。
from math import sqrt
def sumsqr(n):
return int(n * (n + 1) * (2 * n + 1) / 6)
def factors_sums():
N = int(input())
s = 0
m = int(sqrt(N))
i = 1
while i <= m:
s += pow(i,2)*(N//i)
s += sumsqr(N//i) - sumsqr(m)
i += 1
return s
print(factors_sums())
3单词转换(15分)
题目内容:
输入一个英文句子,单词之间正常用空格分隔,以英文句点(圆点)作为结束。无论原句子中的单词的大小写形式如何,请将该句子中的每一个单词都转换成首字母大写其他字符小写的形式,并按顺序存储到一个列表中,最后只直接输出该列表。
s=input()
S=s[:-1]
lst=S.split()
lst2=[]
for i in lst:
i=i.title()
lst2.append(i)
print(lst2)
4素数列表(15分)
题目内容:
在一行内连续输入若干个正整数,用逗号分隔。将它们中的素数按顺序存入一个列表中并输出该列表。
def is_prime(n):
for i in range(2,int(n**0.5)+1):
if n%i==0:
return 0
else:
return 1
lst=list(map(int,input().split(',')))
for i in lst:
if is_prime(i)==0:
lst.remove(i)
print(lst)
网友评论