Python-100-Days学习记录
原项目地址:https://github.com/jackfrued/Python-100-Days
Day6
练习
- 实现求最大公约数和最小公倍数的函数。
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