计算一个数字出现在用户输入的一系列数字中的次数

时间:2017-05-03 16:54:12

标签: python python-3.x

我正在学习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))

8 个答案:

答案 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; !
+意味着我至少需要一次在我面前的小组 (...)定义了一个群组。

https://regex101.com/r/ShdA3Z/1

答案 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");
        }
    }
}