首页 > 解决方案 > 为什么计数会减一?

问题描述

我目前正在使用 Python 进行一些考试,我有一个问题。
例如,我们有 1000 行一些单词。在每一行中,有 2 个单词,由空格键隔开(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)

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

标签: python

解决方案


我可以给你一个简单的替代方案吗?

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

我还看到您已经为word1word2as初始化了字符串"",后来又为它们重新分配了值。您可能要注意 Python 字符串是不可变的,以后重新分配给它们会创建一个新对象。因此,如果您要使用代码,请跳过初始化部分。


推荐阅读