(1)输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
(2)求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),相加的数字个数将由用户通过键盘输入来指定。
(3)一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。
第一题:
#输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
a = input("请输入字母,空格,数字或其它字符:")
zimu = 0
kongge = 0
shuzi = 0
qita = 0
for i in a:
if i == ' ':
kongge = kongge + 1
elif i.isdigit():
shuzi = shuzi + 1
elif i.isalpha(): #因为这个函数会把汉字也判断为字母,所以加两个判断把汉字去掉
if i.islower():
zimu = zimu + 1
elif i.isupper():
zimu = zimu + 1
else:
qita = qita + 1
else:
qita = qita + 1
print("输入的字符串为%s,空格数量为%d个,数字数量为%d个,字母数量为%d个,其它字符为%d个" %(a,kongge,shuzi,zimu,qita))
第二题:
#求s=a+aa+aaa+aaaa+aa......a的值,其中a是一个数字。
# 例如2+22+222+2222+22222(此时共有5个数相加),相加的数字个数将由用户通过键盘输入来指定。
a = input("请输入要相加的数字(1-9哦):"),int(input("请输入要想加的个数:"))
b = []
sum = 0
for i in range(1, a[1] + 1):
b.append(a[0] * i) #python中*这个乘法运算符,实现两个数相乘或者返回一个被重复若干次的数
sum += int(a[0] * i)
print(f"{
sum} = {
' + '.join(b)}")
第三题:
#一个数如果恰好等于它的因子之和,这个数就称为“完数”。
# 例如6=1+2+3。编程找出1000以内的所有完数。
for i in range(2,1001):
a = []
for j in range(1,i):
if i % j == 0:
a.append(j)
if sum(a) == i:
print(f"{
i} = {
' + '.join(map(str,a))}")