我正在学习python,所以我很困难,需要你的帮助。我正在尝试编写一个程序,允许用户输入数字,然后当按“0”退出时,它输出一定数字出现的次数。如果我想为已设置的列表执行此操作,例如查找数字3的外观编号:
list= (2, 400, 3, 40, 100, 3, 3, 10, 0)
print(list.count(3))
如果我想要创建这个,那么请你告诉我我需要做什么,这样就不是设置列表而是用户输入一系列数字和出口以显示按下'0'时的计数?< / p>
我的试验到目前为止,但显然是错误的,因为不通过输入'0'来循环或结束。请帮忙。
print('Enter the next number(0 to finish)')
list1 = [int(x) for x in input().split()]
print(list1.count(3))
答案 0 :(得分:1)
试试这个
l = list()
curr_number = -1
while curr_number != 0:
curr_number = int(input("Number: "))
l.append(curr_number)
print("EXITED")
print(l.count(3))
答案 1 :(得分:0)
我不知道你的输入会在哪里结束。您应该只创建一个一次输入一个的for循环,或者请求用户输入一次空格分隔。类似的东西:
numbers = input("Enter the numbers")
list1 = ...
否则,每次插入任何内容时,您都会继续循环input().split()
,并且永远不会结束。
答案 2 :(得分:0)
这个怎么样?
lst = []
while True:
try:
ans = int(input('enter the next number'))
except ValueError:
print('the value entered is not an integer')
else:
if ans == 0:
print(lst.count(3))
break
else:
lst.append(ans)
continue
我们正在使用while True
构建一个无限循环,当传递0时我们手动break
。只要0未传递且输入为整数或可以转换为一个,该值将存储在列表中,并提示用户提供另一个。
答案 3 :(得分:0)
这应该有效:
list1=list()
print('Enter the next number(0 to finish)')
while True:
nr=input()
if nr.isdigit():
if int(nr)!=0:
list1.append(int(nr))
else:
break
print(list1.count(3))
答案 4 :(得分:0)
我会尝试使用正则表达式:
from re import match
user = ""
while(not match("^(\d+ )+0$", user)):
user = input("Enter the next number (0 to finish) :")
user = [int(n) for n in user.split()[:-1]]
正则表达式:
^...$
意味着在字符串的开头开始分析并在结束时结束
\d
表示我想要一个号码&#39; !
+
意味着我至少需要一次在我面前的小组
(...)
定义了一个群组。
答案 5 :(得分:0)
myList = []
while True:
number = int(input('Enter your number ( 0 to quit ): '))
if number != 0:
myList.append(number)
else:
break
choice = int(input('Enter the Number you want to check for occurrence: '))
print(myList.count(choice))
<强> RESULT 强>
Enter your number ( 0 to quit ): 1
Enter your number ( 0 to quit ): 2
Enter your number ( 0 to quit ): 1
Enter your number ( 0 to quit ): 3
Enter your number ( 0 to quit ): 1
Enter your number ( 0 to quit ): 4
Enter your number ( 0 to quit ): 0
Enter the Number you want to check for occurrence: 1
3
答案 6 :(得分:0)
a = []
while True:
n = int(input())
if number != 0:
a.append(number)
else:
break
b = int(input())
print(a.count(b))
答案 7 :(得分:0)
using System;
namespace NewC
{
class Program
{
static void Main(string[] args)
{
int d, num2 = 1, num3, counter = 0;
Console.WriteLine("enter one digit positive number");
d = int.Parse(Console.ReadLine());
while ( num2 != -1)
{
Console.WriteLine("enter integer positive number");
num2 = int.Parse(Console.ReadLine());
while ( num2 > 0)
{
num3 = num2 % 10;
if (num3 == d)
{
counter++;
num2 = 0;
}
else
{
num2 = num2 / 10;
}
}
}
Console.WriteLine(" the number" + d + " is repeated in" + counter + "numbers");
}
}
}