|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Jerry~Mouse 于 2022-3-12 17:31 编辑
def count(*strx):
lenth = len(strx)
for i in range(lenth):
Flag_num = 0
Flag_str = 0
Flag_space = 0
Flag_other = 0
for each in strx[i]:
if each.isdigit() == True:
Flag_num += 1
elif each.isalpha() == True:
Flag_str += 1
elif each.isspace() == True:
Flag_space += 1
else:
Flag_other += 1
print("第%d个字符串中共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个" % (i + 1,Flag_str,Flag_num,Flag_space,Flag_other))
test = eval(input("请输入字符串"))
count(*test)
input为 xiatiya1234.on,,cahuf,hahahacurrenjiang q124
但是却是错误的SyntaxError: invalid syntax
这个要怎么做到一次性传入多个收集参数呢?(这里我想传入两个参数 三个逗号中只有最后一个是用来分隔两个参数的)
请问怎么解决呢
本帖最后由 isdkz 于 2022-3-12 18:01 编辑
def count(*strx):
lenth = len(strx)
for i in range(lenth):
Flag_num = 0
Flag_str = 0
Flag_space = 0
Flag_other = 0
for each in strx[i]: # 这里少了个 i
if each.isdigit() == True:
Flag_num += 1
elif each.isalpha() == True:
Flag_str += 1
elif each.isspace() == True:
Flag_space += 1
else:
Flag_other += 1
print("第%d个字符串中共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个" % (i + 1,Flag_str,Flag_num,Flag_space,Flag_other))
test = eval(input("请输入字符串"))
count(*test)
你用 eval 得输入符合 python语法的表达式,用 split 也可以,
不过 字符串的 split 方法会按给定字符串来分割,比如 .split(','),它会根据所有逗号分割,
也就是无法统计所有逗号,两个相邻的逗号之间还会分割出一个空字符串,
用 eval 的话你得这样输入,在字符串两边加上引号,python表达式中的字符串是要带引号的:
D:\>python test.py
请输入字符串'xiatiya1234.on,','cahuf','hahahacurrenjiang q124'
第1个字符串中共有:英文字母9个,数字4个,空格0个,其他字符2个
第2个字符串中共有:英文字母5个,数字0个,空格0个,其他字符0个
第3个字符串中共有:英文字母18个,数字3个,空格2个,其他字符0个
D:\>
|
|