Python 在for循环中将字符串强制转换为Int
如何将位置变量I存储为int,以便在字符串中使用该特定位置 这将以单间距字体显示Python 在for循环中将字符串强制转换为Int,python,Python,如何将位置变量I存储为int,以便在字符串中使用该特定位置 这将以单间距字体显示 sentence = input() for i in sentence: if i == " ": j = int(i) #this line is throwing an error print (sentence[0:j]) 您应该使用枚举 for k, v in enumerate(sentence): if v == " ": print (se
sentence = input()
for i in sentence:
if i == " ":
j = int(i) #this line is throwing an error
print (sentence[0:j])
您应该使用
枚举
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: ''
>>int(“”)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:基数为10的int()的文本无效:“”
您的代码中有两个缺陷:
if i == " ":
j = int(i)
因此,您需要检查i
是否为空格字符,在这种情况下,您需要将该空格转换为数字。当然,这是行不通的,那个空间应该是多少
另一个缺陷是您在其中使用空格字符的原因。您说要使用角色的位置或索引。但是for循环所做的事情与您预期的不同:for x in sequence
将迭代该序列中的每个元素x
。对于字符串序列,您将获得每个字符,而不是索引
例如:
>>> for x in 'foo':
print(x)
f
o
o
如您所见,它打印的是字符,而不是索引
不过,您可以使用enumerate()
进行此操作。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])
如果您试图查找
''
的位置,请使用句子索引('')
:
为了清楚起见,您想通过索引获取字符串中的每个字符吗?所以,如果句子是“abcd”,那么句子[0]=“a”句子[1]=b等等?是的,没错。我想知道字符串中任何空格的位置,比如-在字符串中,我想j等于2ok,所以如果I==“”,只需执行句子索引(I),这将给出空格的索引。。。
sentence = input()
try:
i = sentence.index(' ')
print (sentence[0:j])
except ValueError:
pass