鱼C论坛

 找回密码
 立即注册
查看: 2947|回复: 4

[已解决]请问为什么输入相同,两个代码用input函数的输出不一样呀

[复制链接]
发表于 2022-10-28 18:29:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
是因为*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[i]:
            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')
最佳答案
2022-10-28 19:03:29
本帖最后由 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[i]:
            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:\[00.Exerciese.2022]\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:\[00.Exerciese.2022]\Python>
        用这种方式调用一个函数,我也是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-28 19:03:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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[i]:
            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:\[00.Exerciese.2022]\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:\[00.Exerciese.2022]\Python>
        用这种方式调用一个函数,我也是
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-28 21:42:38 | 显示全部楼层
jackz007 发表于 2022-10-28 19:03
运行实况:

        用这种方式调用一个函数,我也是醉了

请问可以讲一下最后一句eval('count' + params)吗?加号也可以调用函数的参数吗?初学者不懂得太多了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-28 21:55:34 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-28 21:59 编辑
eval('count' + params)
      这是在执行字符串形式的 Python 语句,括号里的参数就是字符串形式的 Python 语句。
      研究一下这个代码也许可以明白一些:
params = input('请传入字符串参数:')
print('count' + params)
       运行实况:
D:\[00.Exerciese.2022]\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:\[00.Exerciese.2022]\Python>
      没错,最后那一句所执行的就是这一句:
count('I love fishc.com.','I love you,you love me')
      能把字符串当成 Python 语句来执行,这就是 BIF eval() 的神奇之处。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-29 09:25:54 | 显示全部楼层
jackz007 发表于 2022-10-28 21:55
这是在执行字符串形式的 Python 语句,括号里的参数就是字符串形式的 Python 语句。
      研究一 ...

好哒!谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 21:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表