原项目地址:https://github.com/jackfrued/Python-100-Days
def gcd(x, y):
if x > y:
x, y = y, x # 第一个数小于第二个数
for factor in range(x, 0, -1): # 从较小的数往1递减
if x % factor == 0 and y % factor == 0:
return factor
def lcm(x, y):
return z * y // gcd(x, y)
def is_palindrome(n):
temp = n
total = 0
while temp > 0:
total = temp % 10 + total * 10
temp //= 10
return total == n
def is_prime(n):
end = int(sqrt(n))
for x in range(2, end + 1):
if n % x == 0:
return False
return True if n != 1 else False
if __name__ == '__main__':
num = int(input('请输入正整数:'))
if is_palindrome(num) and is_prime(num):
print('%d是回文素数' % num)
运行结果:
PS E:\Nproject> python day2-1.py
请输入正整数:313
313是回文素数
Python查找一个变量时会按照“局部作用域”、“嵌套作用域”、“全局作用域”和“内置作用域”的顺序进行搜索
所谓的“内置作用域”就是Python内置的那些隐含标识符min
、len
等都属于内置作用域
可以使用global
关键字来指示foo
函数中的变量a
来自于全局作用域,如果全局作用域中没有a
,那么下面一行的代码就会定义变量a
并将其置于全局作用域。同理,如果希望函数内部的函数能够修改嵌套作用域中的变量,可以使用nonlocal
关键字来指示变量来自于嵌套作用域。
def foo():
global a
a = 200
print(a) # 200
if __name__ == '__main__':
a = 100
foo()
print(a) # 200