Python 为什么倒数是一?

Python 为什么倒数是一?,python,Python,我目前正在用Python进行一些考试,我有一个问题。 例如,我们有1000行的单词。每行中有两个单词,用空格键分隔(ASCII代码32)。我必须用Python编写代码来检查第一个单词是否存在于第二个单词中(在同一行中),例如,adc存在于addadc中,但不存在于addadfc中,我需要计算所有良好的行数。结果是235,但它太高了,因为正确答案是234。我不知道为什么会这样 代码: 它是用波兰语写的,所以我会翻译一下。我能给你一个简单的选择吗 count = 0 for i in range(1

我目前正在用Python进行一些考试,我有一个问题。
例如,我们有1000行的单词。每行中有两个单词,用空格键分隔(ASCII代码32)。我必须用Python编写代码来检查第一个单词是否存在于第二个单词中(在同一行中),例如,
adc
存在于
addadc
中,但不存在于
addadfc
中,我需要计算所有良好的行数。结果是
235
,但它太高了,因为正确答案是
234
。我不知道为什么会这样

代码:


它是用波兰语写的,所以我会翻译一下。

我能给你一个简单的选择吗

count = 0
for i in range(1000):
    line = input().strip()
    word1,word2 = line.split(' ')
    if word1 in word2:
        count += 1
print(count)

此外,我还看到您已将
word1
word2
的字符串初始化为
,然后重新为它们赋值。您可能需要注意,Python字符串是不可变的,稍后重新分配给它们将创建一个新对象。因此,如果要使用代码,请跳过初始化部分。

错误似乎在这一行:

pierwszy\u napis=(linia[0:index\u spacji-1])

它在
pierwszy_napis
中放置的字符比它应该放置的少了一个。因为MyString[a:b]提供了从索引a到索引b-1的子字符串

试一试

pierwszy\u napis=(linia[0:index\u spacji])


相反

尝试使用范围(10),看看是否仍然得到比期望值高一的结果。使用范围(1)、范围(2)、范围(500)等其他数字进行测试。这可能会导致您出现错误。我使用了您的错误,并且我看到.strip()方法没有改变任何内容,所以我猜它只是从行的开始和结束处删除了空格。我说的对吗;word2=“abcdf”
count = 0
for i in range(1000):
    line = input().strip()
    word1,word2 = line.split(' ')
    if word1 in word2:
        count += 1
print(count)