目录
17.
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
思路:英文,数字,空格这几样 string库中的判断语法,判断中文这个我卡了好久,看到川川的爬虫训练信息,突然想起来,好像可以用正则匹配
方法一:普通方法
"""
CSDN : heart_6662
PYTHON amateur
"""
import string
s = input("请输入一个数:\n")
english_word = 0
space = 0
digit = 0
other = 0
for c in s:
if c.isalpha():
english_word += 1
elif c.isspace():
space += 1
elif c.isdigit():
digit += 1
else:
other += 1
print('英文有%d,空格有%d,数字有%d,中文有%d' % (english_word,space,digit,other))
方法2:正则匹配
我去查看一下正则
4E00~9FFFh 是中文的数字区域
import re
s = input("请输入一个数:\n")
char = re.findall(r'[a-zA-Z]',s)
num = re.findall(r'[0-9]',s)
blank = re.findall(r' ',s)
chi = re.findall(r'[\u4E00-\u9FFF]',s)
other = len(s)-len(char)-len(num)-len(blank)-len(chi)
print("字母:", len(char),"\n数字:", len(num),"\n空格:",len(blank),"\n中文:",len(chi),"\n其他:",other)
18.
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
思路:什么的例子第一次为2,第二为2*10+2,第三个为2*10*10+2*10+2.............
每次从上一次的数乘10,再加上一次将数加起来为新的下一位数,最后用 叠加 求和
sum = 0
total = 0
n = int(input("请输入一位数:"))
a = int(input("请输入一位数:"))
for i in range(n):
sum += (10**i)
total += sum*a
print("总和为",sum)