嗨,如果这看起来像是家庭作业,我很抱歉,但我一直在尝试并且未能完成这项工作,我真的很感谢一些专家的帮助。我正在尝试自学python。
我试图解决CodinGame中的问题,并且第一个希望您计算输入字符串传递给程序的次数。输入字符串分为两部分(例如" Sina dumb")。我试着用这个:
count = int(sys.stdin.readline())
count = int(input())
count = int(raw_input()) #python2
但程序失败了:
ValueError: invalid literal for int() with base 10: 'Sina dumb\n'
取决于我是否留下换行符。 请问我做错了什么,怎样才能做得更好?
答案 0 :(得分:3)
在python2.x
或python 3.x
sys.stdin.readline()
和input
给出type str
。如果int("string")
包含string
,则chars
会产生错误。
我认为你需要这个(假设)
import sys
input_var = input() # or raw_input() for python 2.x
# entering Sina dumb
>>>print(len(input_var.split()))
2
<强>更新强>
如果你想计算你输入的input
多少。试试这个
import sys
from itertools import count
c = count(1)
while True:
input_var = input()
print ("you entered " + str(next(c)) + " inputs")
答案 1 :(得分:0)
一方面,在这种情况下,python说你尝试将字符串'Sina dumb\n
转换为无效的整数,这是真的。这可能是在第二行int(input)
另一方面,为了解决您的问题,一个简单的方法,因为您作为输入传递的每一行包含行尾字符\n
,您可以例如获取输入内容,并将其拆分为{{1 }}字符并计算结果列表的大小。
答案 2 :(得分:-1)
input()
中的{p> python 3.x
和raw_input()
中的python 2.x
会给出一个字符串。如果字符串包含除数字之外的任何内容,则会提供ValueError
。
你可以试试正则表达式:
import re
line = input()
count = len(re.findall(r'\w+', line))
print (count)