请问为什么输入相同,两个代码用input函数的输出不一样呀
是因为*params导致的吗?代码一:
def count(*params):
yingwen = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz'
shuzi = '0123456789'
kongge = ' '
zifu = '!~@#$%^&*()_{}[]?/|\<>,.`;:'
l = len(params)
print(l)
print(params)
for i in range(l):
s1=s2=s3=s4=0
for each in params:
if each in yingwen:
s1 += 1
if each in shuzi:
s2 += 1
if each in kongge:
s3 += 1
if each in zifu:
s4 += 1
#print('第%d个字符串共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个.'%(i+1,s1,s2,s3,s4))
print('请传入字符串参数:',end = '')
#params = eval(input())
params = input()
count(*params)
输出:
请传入字符串参数:('I love fishc.com.','I love you,you love me')
46
('(', "'", 'I', ' ', 'l', 'o', 'v', 'e', ' ', 'f', 'i', 's', 'h', 'c', '.', 'c', 'o', 'm', '.', "'", ',', "'", 'I', ' ', 'l', 'o', 'v', 'e', ' ', 'y', 'o', 'u', ',', 'y', 'o', 'u', ' ', 'l', 'o', 'v', 'e', ' ', 'm', 'e', "'", ')')
代码二:
a = input('名字:')
print (a)
print(type(a))
输出:
名字:('i love you','you love me')
('i love you','you love me') 本帖最后由 jackz007 于 2022-10-28 19:40 编辑
def count(* params):
yingwen = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz'
shuzi = '0123456789'
kongge = ' '
zifu = '!~@#$%^&*()_{}[]?/|\<>,.`;:'
l = len(params)
print(l)
print(params)
for i in range(l):
s1=s2=s3=s4=0
for each in params:
if each in yingwen:
s1 += 1
if each in shuzi:
s2 += 1
if each in kongge:
s3 += 1
if each in zifu:
s4 += 1
print('第%d个字符串共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个.'%(i+1,s1,s2,s3,s4))
params = input('请传入字符串参数:')
eval('count' + params)
运行实况:
D:\\Python>python x.py
请传入字符串参数:('I love fishc.com.','I love you,you love me')
2
('I love fishc.com.', 'I love you,you love me')
第1个字符串共有:英文字母13个,数字0个,空格2个,其他字符2个.
第2个字符串共有:英文字母17个,数字0个,空格4个,其他字符1个.
D:\\Python>
用这种方式调用一个函数,我也是醉了 jackz007 发表于 2022-10-28 19:03
运行实况:
用这种方式调用一个函数,我也是醉了
请问可以讲一下最后一句eval('count' + params)吗?加号也可以调用函数的参数吗?初学者不懂得太多了{:5_111:} 本帖最后由 jackz007 于 2022-10-28 21:59 编辑
eval('count' + params)
这是在执行字符串形式的 Python 语句,括号里的参数就是字符串形式的 Python 语句。
研究一下这个代码也许可以明白一些:
params = input('请传入字符串参数:')
print('count' + params)
运行实况:
D:\\Python>python x.py
请传入字符串参数:('I love fishc.com.','I love you,you love me')
count('I love fishc.com.','I love you,you love me')
D:\\Python>
没错,最后那一句所执行的就是这一句:
count('I love fishc.com.','I love you,you love me')
能把字符串当成 Python 语句来执行,这就是 BIF eval() 的神奇之处。
jackz007 发表于 2022-10-28 21:55
这是在执行字符串形式的 Python 语句,括号里的参数就是字符串形式的 Python 语句。
研究一 ...
好哒!谢谢你!{:9_228:}
页:
[1]