python - 为什么计数会减一?
问题描述
我目前正在使用 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)
它是用波兰语写的,所以我会稍微翻译一下。
解决方案
我可以给你一个简单的替代方案吗?
count = 0
for i in range(1000):
line = input().strip()
word1,word2 = line.split(' ')
if word1 in word2:
count += 1
print(count)
我还看到您已经为word1
和word2
as初始化了字符串""
,后来又为它们重新分配了值。您可能要注意 Python 字符串是不可变的,以后重新分配给它们会创建一个新对象。因此,如果您要使用代码,请跳过初始化部分。
推荐阅读
- php - 在 Laravel 5.8 中转换数据潜水错误结果
- html - Angular ngx-translate - How to set a default value for missing param in translation value
- javascript - How to use global variables in Vue JS components?
- coq - get field from Record Types in Coq
- javascript - jQuery exeption on click inside container
- javascript - 缓存不返回函数
- eslint - Ignore warnings for the file placed in .eslintignore
- javascript - How to wait to multiple async function to finish?
- haskell - 用 GHC 泛型定义一个类似“空”的函数?
- wordpress - 如何修复 WordPress 网站在 Google 中显示未知结果?