簡體   English   中英

如何在循環中只打印一次語句

[英]How to print out a statement only once in loop

我有一個問題:我有一個數字序列和一個數字 n。 我需要編寫一個程序,它應該 output 在數字序列中的所有 n 位置。 如果 n 不在序列中,則打印“未找到”行。 實際上,我對這個“未找到”有疑問。 它只需要打印一次,但它會打印多次。 我該如何解決?

line = input()
n = input()
line = line.split()
pos_list = []
x = 0
for j in range(len(line)):
        pos_list.append(j)
#print(pos_list)
for i in line:
    if i == n:
        print(line.index(n, x))
    else:
        print("not found")
    x = x + 1

例如對於 line = 3 5 3 6 4, n = 7 我有:

not found
not found
not found
not found
not found

如果我在print("not found")之后使用break它總是打印 not found 即使n在序列中

如果找到 n,請嘗試“記住”。 如果循環完成后未打印一次“未找到”:

line = input()
n = input()
line = line.split()
pos_list = []
x = 0
found = False
for j in range(len(line)):
        pos_list.append(j)
#print(pos_list)
for i in line:
    if i == n:
        print(line.index(n, x))
        found = True
    x = x + 1
if not found:
    print("not found")

你可以把這段代碼正常工作:

line = input()
n = input()
line = line.split()
pos_list = []
x = 0
for j in range(len(line)):
        pos_list.append(j)
#print(pos_list)

flag =0
for i in line:
    if i == n:
        flag=1
        print(line.index(n, x))
    x = x + 1

if (flag==0):
    print("not found")

但是如果你想找到子字符串,那么你這個代碼不起作用。 您通過空格分隔線將線串分成字符串數組:示例:

line="hello worldhello helloYou"
n="hello"

所以這里你好是在位置 0 而不是在 11、17 position。 因為你沒有考慮substring

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM