from sys import argv
def prime():
for i in range(2,num):
if num % i == 0:
print(f"{num} can be divisible by {i}.")
checker = False
num = int(input("Enter the number you want to check is prime: "))
checker = True
if num < 2:
print(f"{num} is a prime number.")
elif num == 0:
print(f"{num} is not a prime number.")
elif num > 0:
prime()
print(f"Is this number a prime - {checker}.")
else:
print(f"Please write number larger than 0.")
大家好,我刚刚开始编码,这可能是一个非常简单的问题。我希望我的代码能够找到数字的因子,或者如果数字是素数则打印 - 但是“prime”函数中的布尔值永远不会更新为False。不知道为什么!
谢谢。
答案 0 :(得分:0)
def chapter_view(request, pk, slug, cpk, cslug):
context = {}
chapter = Chapter.objects.get(pk=pk, slug=slug, course__pack=cpk, course__slug=cslug)
context["chapter"] = chapter
return render(request, "courses/chapter_detail.html", context)
函数未“更新”<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" >
android:alpha="0.5"
</item>
<item android:state_enabled="true" >
android:alpha="1"
</item>
</selector>
的原因是因为函数中没有return
语句。
有了它,函数看起来像这样:
prime()
更新的代码如下所示:
False
但是,这不是解决问题的唯一方法:it's not recommended and frowned upon by many programmers as bad practice - 使用global
语句(看起来就像您最初尝试的那样)。
有了它,函数看起来像这样:
def prime():
checker = True
for i in range(2,num):
if num % i == 0:
print(f"{num} can be divisible by {i}.")
checker = False
return checker
更新的代码如下所示:
from sys import argv
def prime():
checker = True
for i in range(2,num):
if num % i == 0:
print(f"{num} can be divisible by {i}.")
checker = False
return checker
num = int(input("Enter the number you want to check is prime: "))
if num < 2:
print(f"{num} is a prime number.")
elif num == 0:
print(f"{num} is not a prime number.")
elif num > 0:
is_prime = prime()
print(f"Is this number a prime - {is_prime}.")
else:
print(f"Please write number larger than 0.")
答案 1 :(得分:0)
def prime():
global checker
""" remaining logic as is"""
我认为这会奏效。 对不起格式,因为我正在写电话。