如何将位置变量i存储为int,以便我可以在字符串中使用该特定位置 这将以等宽字体显示。
sentence = input()
for i in sentence:
if i == " ":
j = int(i) #this line is throwing an error
print (sentence[0:j])
答案 0 :(得分:3)
您的代码中存在两个缺陷:
if i == " ":
j = int(i)
因此,检查i
是否为空格字符,在这种情况下,您要将该空格转换为数字。当然那不会起作用 - 那个空间应该是什么意思?
另一个缺陷是你在那里有空格角色的原因。你说你想要使用角色的位置或索引。但是你的for循环做了一些不同于你期望的事情:for x in sequence
将迭代该序列中的每个元素x
。如果是字符串序列,您将获得每个字符 - 而不是索引。
例如:
>>> for x in 'foo':
print(x)
f
o
o
如您所见,它会打印字符,而不是索引。
虽然您可以使用enumerate()
。枚举将枚举一个序列,为您提供值和它出现的索引:
>>> for i, x in enumerate('foo'):
print(i, x)
0 f
1 o
2 o
所以你也得到了索引。
在您的情况下,您的代码将如下所示:
sentence = input()
for i, x in enumerate(sentence):
if x == " ":
print(sentence[0:i])
答案 1 :(得分:0)
您应该使用enumerate
for k, v in enumerate(sentence):
if v == " ":
print (sentence[0:k])
您正在将空格char转换为int。当然不行。
>>> int(' ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ''
答案 2 :(得分:0)
如果您尝试找到' '
使用sentence.index(' ')
的位置:
sentence = input()
try:
i = sentence.index(' ')
print (sentence[0:j])
except ValueError:
pass