Jerry~Mouse 发表于 2022-3-12 14:52:50

收集参数与input关系的问题

def a(*c,base = 3):
    if c[-1] == 5:
      result = (sum(c) - c[-1]) * 5
    else:
      result = sum(c) * base

    return result

t = tuple(input())   #这里试图用input传入收集参数 但是失败了 失败原因TypeError: unsupported operand type(s) for +: 'int' and 'tuple'
print(a(t))

我想问的问题是:如何通过input传入多个参数(例如 *c想要10个参数 有什么办法可以通过input传入吗)

isdkz 发表于 2022-3-12 14:57:14

本帖最后由 isdkz 于 2022-3-12 14:59 编辑

def a(*c,base = 3):
    if c[-1] == 5:
      result = (sum(c) - c[-1]) * 5
    else:
      result = sum(c) * base

    return result

t = eval(input())# 注意这里
print(a(*t))       # 注意这里


效果:
D:\>python test.py
1,2,3
18

D:\>python test.py
1,2,3,4,5
50

D:\>

Jerry~Mouse 发表于 2022-3-12 15:38:03

isdkz 发表于 2022-3-12 14:57
效果:

谢谢 但是能解释一下为啥要用eval而不用tuple吗
另外还有个问题 就是在print(a(*t))这里 这个地方的*t是用来表明它是个收集参数的意思吗

isdkz 发表于 2022-3-12 15:42:27

Jerry~Mouse 发表于 2022-3-12 15:38
谢谢 但是能解释一下为啥要用eval而不用tuple吗
另外还有个问题 就是在print(a(*t))这里 这个地方的*t ...

因为 input 得到的是字符串,tuple()会将字符串的每一个字符放到元组,

字符是不能用 sum 来求和的,eval 的话会把你的字符串当成 python 表达式来求值,

直接就可以把你的输入当成 python 里面的表达式

Jerry~Mouse 发表于 2022-3-12 17:25:14

isdkz 发表于 2022-3-12 14:57
效果:

现在出现了一个新问题
def count(*strx):
    lenth = len(strx)
    for i in range(lenth):
      Flag_num = 0
      Flag_str = 0
      Flag_space = 0
      Flag_other = 0
      for each in strx:
            if each.isdigit() == True:
                Flag_num += 1
            elif each.isalpha() == True:
                Flag_str += 1
            elif each.isspace() == True:
                Flag_space += 1
            else:
                Flag_other += 1
      print("第%d个字符串中共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个" % (i + 1,Flag_str,Flag_num,Flag_space,Flag_other))


count("xiatiya1234.on,,cahuf","hahahacurrenjiangq124")

这个要怎么做到一次性传入多个收集参数呢?这次的收集参数是字符串而且还带有了逗号
请问怎么解决呢

isdkz 发表于 2022-3-12 17:38:39

本帖最后由 isdkz 于 2022-3-12 17:43 编辑

Jerry~Mouse 发表于 2022-3-12 17:25
现在出现了一个新问题
def count(*strx):
    lenth = len(strx)


eval只能传 python 表达式(符合 python 语法规则的),

你输入的时候得按 python原始字符串格式 输入
页: [1]
查看完整版本: 收集参数与input关系的问题