| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2747 人关注过本帖
标题:求助帖,不明白函数为啥能调用成功
取消只看楼主 加入收藏
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
求助帖,不明白函数为啥能调用成功
程序代码:
def cmul(*ip):

    product = 1
    for i in ip:
        product *= i
    return product

print(eval("cmul({})".format(input())))


不明白cuml()函数中输入的明明是个字符串,为啥还能运行成功呢?难道是eval()函数去掉双引号了吗?

-----------------------------------------------------------------------------------
我测试后发现问题可能出现在format()函数,那我就更不明白了为啥会出现如下情况
>>> "{}".format("1,2,3")
'1,2,3'
>>> "({})".format("1,2,3")
'(1,2,3)'

为啥第二行命令结果是“(1,2,3)”,难道不应该是"("1,2,3")吗?

[此贴子已经被作者于2020-1-13 17:21编辑过]

搜索更多相关主题的帖子: product 调用 成功 函数 format 
2020-01-13 12:27
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 2楼 xianfajushi
是的,是python,就是不明白print(eval("cmul({})".format(input())))为啥能调用cmul()呢,我认为传入的是字符串啊,为啥其实是数字呢
2020-01-13 13:00
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 5楼 wp231957
可能是我没写明白,我知道eval()函数能去掉最外层的双引号,我想问的是print(eval("cmul({})".format(input())))中cmul()函数中输入的是个字符串啊,也就是说input函数接收了输入,输出应该是个字符串,然后用format函数传到{}槽中,那执行起来岂不是cuml(字符串),这怎么会运行成功呢
2020-01-13 15:56
是2014
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2017-3-21
收藏
得分:0 
回复 8楼 fall_bernana
大神,我没明白,请细说一下
2020-01-13 17:22
快速回复:求助帖,不明白函数为啥能调用成功
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015635 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved