Discuss / Python / day3.有没有大佬能帮我看看为什么我的代码传一个参数的时候不行哇

day3.有没有大佬能帮我看看为什么我的代码传一个参数的时候不行哇

Topic source

小太郎tail

#1 Created at ... [Delete] [Delete and Lock User]

def product(*nums):

    sum=1

    for i in nums:

        sum=sum*i

    return sum

while 1:

    nums=eval(input("请输入你要计算的数:"))

    print('计算的乘积为:',product(*nums))

    if nums=='exit':

        break

Handford

#2 Created at ... [Delete] [Delete and Lock User]

你输单个参数的时候,eval函数时把nums的值转成int类型而不是tuple,所以会报参数类型错误。而且你代码还有个问题,如果你要结束循环也会报错。

我的想到的解决方法是(我觉得这解决办法太蠢了):新建一个变量来接收input的值,然后把if语句提到eval前面,最后加个else把接收input的值的变量给拼上一个“,”

小太郎tail

#3 Created at ... [Delete] [Delete and Lock User]

谢谢你,我想问怎么拼上一个“,”,我不知道具体怎么实现这步,我另外想了一个是在else里面再判断如果是一个长度就int转换直接输出,另外的就调用自定义函数计算输出(我觉得这办法更加蠢qwq)。

Handford

#4 Created at ... [Delete] [Delete and Lock User]

变量名+',' ,就可以了

Handford

#5 Created at ... [Delete] [Delete and Lock User]
while 1:
    i = input("请输入你要计算的数:")

    if i == 'exit':

        break

    else:

        i = i+','

    nums = eval(i)

    print('计算的乘积为:', product(*nums))

小太郎tail

#6 Created at ... [Delete] [Delete and Lock User]

nice,谢谢你~


  • 1

Reply