为什么倒数是一?

2024-10-06 11:19:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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

代码:

liczba_wierszy = 0 #amount of lines

for i in range(1000):
    linia = input() # line
    index_spacji = 0 # space index
    index_konca = 0 #index of the word
    pierwszy_napis = "" # first word
    drugi_napis = ""  # second word
    for j in linia:
        if ord(j)!= 32:
            index_spacji+=1
        else:
            break;
    pierwszy_napis =(linia[0:index_spacji-1])
    drugi_napis = (linia[index_spacji+1:len(linia)])
    if pierwszy_napis in drugi_napis:
        liczba_wierszy+=1

print(liczba_wierszy)

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


Tags: of代码inforindexif单词word
2条回答

错误似乎在这行:

pierwszy_napis =(linia[0:index_spacji-1])

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

试试看

pierwszy_napis =(linia[0:index_spacji])

相反

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

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

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

相关问题 更多 >