def来定义函数,在函数执行完成后可以通过return来返回一个值,相当于函数上的因变量。
函数的重构:在不影响函数运行结果的前提下,对函数的结构进行调整。、
模块管理:
由于没有函数重载概念,同时定义两个函数,后面的会覆盖前面的:
def main(): print('123456') def main(): print('abcde') main()#输出为abcd在多人协助时可能会出现多个同名函数,此时可以用import调用
from....import... 或者是 import...as....
如果导入的函数有执行代码,导入时为了不执行代码将执行代码放在下列条件中:
def foo(): pass def bar(): pass # __name__是Python中一个隐含的变量它代表了模块的名字 # 只有被Python解释器直接执行的模块的名字才是__main__ if __name__ == '__main__': print('call foo()') foo() print('call bar()') bar() 构造一个回文函数: def is_palindrome(num): a = num b = 0 while a > 0: b = b*10 + a % 10 a //= 10 return b == num构造一个素数函数:
def is_prime(num): for factor in range(1, int(num**0.5)+1): if num % factor == 0: return False return True if num != 1 else False构造判断是否是回文素数:
if __name__ == '__main__': num = int(input('请输入正整数: ')) if is_palindrome(num) and is_prime(num): print('%d是回文素数' % num)变量作用域,
全局作用域(a),局部作用域(b),嵌套作用域(b),
def foo(): b = 'hello'#局部作用域(b) # Python中可以在函数内部再定义函数 def bar(): c = True print(a) print(b)#嵌套作用域(b) print(c) bar() # print(c) # NameError: name 'c' is not defined if __name__ == '__main__': a = 100#全局作用域(a) # print(b) # NameError: name 'b' is not defined foo()可以用global来指定全局变量:
def foo(): global a a = 200 print(a) # 200 if __name__ == '__main__': a = 100 foo() print(a) # 20