Python输出打印不止一次,函数给出参数未识别错误



我知道这很基本,但是我陷入了小步骤。菜鸟到python,请原谅我的无知。问题是在2个随机用户输入号码之间生成所有质数(这意味着不包括第一个和第二个数字)。另外,如果两个数字之间没有质数,则应打印"No Primes"输出。我的代码:

Firstno=int(input("number1: "))
Secondno = int(input("number2: "))
for num in range(Firstno+1,Secondno -1):
  if num>1:
    for i in range (2,num):
      if (num%i) == 0:
        break 
      else:
        print(num)

这给出了所需输出的一部分,但未显示"No primes"。如果我包括print("No primes")代替中断语句并使用数字2329进行测试,则将"No Primes"输出重复两次。我还尝试定义功能(我的知识很少)

def is_prime(n):
  for i in range(x,n):
    if (n%i) == 0:
      return "No Primes"
  return True
Firstno=int(input("number1: "))
Secondno = int(input("number2: "))
for num in range(Firstno+1,Secondno -1):
  if is_prime(num):
    print(num)

我知道是不正确的。.由于x未定义。请提供有关改进我的代码以获取所需输出的建议。

您基本上需要从线路for num in range(Firstno+1,Secondno -1):删除-1,以了解为什么查看代码包含范围:for num in range(Firstno,Secondno+1):

这是您的第一次尝试编码:

lower_boundry = int(input("Enter the lower boundry number: "))
upper_boundry = int(input("Enter the upper boundry number: "))
print("Prime numbers between", lower_boundry , "and", upper_boundry , "exclusive are:")
primes_found = []
for num in range(lower_boundry + 1, upper_boundry):
  if num > 1:
    for i in range(2,num):
      if (num % i) == 0:
        break
    else:
      primes_found.append(num)
if len(primes_found) > 0:
  print(primes_found)
else:
  print("No Primes")

示例使用介于:

之间
Enter the lower boundry number:  2
Enter the upper boundry number:  6
Prime numbers between 2 and 6 exclusive are:
[3, 5]

示例用法中没有数量:

Enter the lower boundry number:  2
Enter the upper boundry number:  3
Prime numbers between 2 and 3 exclusive are:
No Primes

在此处尝试以上代码!

最新更新