|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目: 编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。
代码:
English letters ='QWERTYUIOPASDFGHJKLZXCVBNM'
numbers = '1234567890'
blank space= ' '
others = `';.,/[]{}:""?><~!@#$%^&*()
temp = input('请输入一段话')
L1=list(temp)
for each in L1:
letter_count=0
numbers_count=0
blank_count=0
others_count=0
if English letters in L1:
letter_count+=1
elif numbers in L1:
numbers_count+=1
elif blank space in L1:
blank_count+=1
else others in L1:
others_count+=1
print('英文字母%d个,数字%d个,空格%个,其他字符%d个。%(letter_count,numbers_count,blank_count,others_count))
这是我编写的代码。运行出错,一直在第一行,错误提示'invalid syntax'
不知道咋改,求大神指教!谢谢啦~
本帖最后由 灰晨 于 2021-6-1 15:49 编辑
emmmm,你这代码错得有那么亿点点多。。
1.English letters和blank space命名就不规范,变量名除下划线不能有其他字符的(比如空格)
2.others后面也没加引号表示字符串,而且里面一堆符号还得考虑转义字符。。。
3.L1=list(temp)是把你输入的话一个字符当一个元素的,比如我输入love,L1就是['l','o','v'','e'],你后面English_letters in L1肯定是没有的啊,而且python是分大小写。。。
4.for each in L1你这个each就没见你用。。按你的思路你下面判断应该得if each in English_letters,你既然把你输入的话拆成一个一个元素,就应该判断这个元素在不在English_letters里,而不是判断English_letters在不在你这单个元素里
5.letter_count=0
numbers_count=0
blank_count=0
others_count=0
不能放循环里,不然每次循环都清0了。
6.print也少了个引号和%d的d
我帮你改了改 - English_letters ='QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm'
- numbers = '1234567890'
- blank_space= ' '
- others = '''`';.,/[]{}:""?><~!@#$%^&*()'''
- temp = input('请输入一段话')
- L1=list(temp)
- letter_count=0
- numbers_count=0
- blank_count=0
- others_count=0
- for each in L1:
- if each in English_letters:
- letter_count += 1
- elif each in numbers:
- numbers_count += 1
- elif each in blank_space:
- blank_count += 1
- else:
- others_count += 1
- print('英文字母%d个,数字%d个,空格%d个,其他字符%d个。'%(letter_count,numbers_count,blank_count,others_count))
复制代码
而且你这代码只能传一段话
|
|