Python 函数
函数
函数(Functions)是指可重复使用的程序片段。它们允许你为某个代码块赋予名字,允许你通过这一特殊的名字在你的程序任何地方来运行代码块,并可重复任何次数。函数可以通过关键字def来定义,这一关键字跟着一个函数的标识符名称。
通过调用函数,实现hello world
def say_hello():
print('hello world')
say_hello()
say_hello()
函数参数
函数可以获取参数,这个参数的值由你所提供,借此,函数便可以利用这些值来做一些事情。
实现找出两个数值最大值的功能
def print_max(a,b):
if a > b:
print(a,'is maximum.')
elif a == b:
print(a,'is equal to',b,'.')
else:
print(b,'is maximum.')
print_max(3,4)
x=5
y=7
print_max(x,y)
局部变量
当你在一个函数的定义中声明变量时,它们不会以任何方式与身处函数之外但具有相同名称的变量产生关系,也就是说,这些变量名只存在于函数这一局部。
实现局部变量
x = 50
def func(x):
print('x is ',x)
x = 2
print('changed local x to',x)
func(x)
print('x is still',x)
global 语句
global语句实现局部变量到全局变量
x = 5
def func():
global x
print('x is ',x)
x = 2
print('changed local x to',x)
func()
print('value of x is',x)
默认参数值
通过在函数定义时附加一个赋值运算符( = )来为参数指定默认参数值。
def say(message,times=1):
print(message*times)
say('hello')
say('hello world\n',5)
关键字参数
如果你有一些具有许多参数的函数,而你又希望只对其中的一些进行指定,那么你可以通过命名它们来给这些参数赋值,这样做有两大优点,其一,我们不再需要考虑参数的顺序,函数的使用将更加容易。其二,我们可以只对那些我们希望赋予的参数以赋值,只要其它的参数都具有默认参数值。
def func(a,b=23,c=50):
print('a is',a,'and b is',b,'and c is',c)
func(5,10)
func(100,200)
func(a=13,c=13,b=14)
可变参数
有时你可能想定义的函数里面能够有任意数量的变量,也就是参数数量是可变的,这可以通过使用星号来实现。
def total(a=5,*numbers,**phonebook):
print('a',a)
for single_item in numbers:
print('single_item',single_item)
for first_part ,second_part in phonebook.items():
print(first_part,second_part)
print(total(10, 1, 3, c=10,b=3,d=17 ))
一个星号参数时,从此处开始直到结束的所有位置参数(Positional Arguments)都将被收集并汇集成一个的元组(Tuple),声明一个双星号参数时,从此处开始直至结束的所有关键字参数都将被收集并汇集成一个字典(Dictionary).
return 语句
return 语句用于从函数中返回,也就是中断函数。我们也可以选择在中断函数时从函数中返回一个值。
用return语句实现返回最大值
def maximum(x,y):
if x > y:
return x
elif x == y:
return'the number are eaual'
else:
return y
print(maximum(3,4))
如果 return 语句没有搭配任何一个值则代表着 返回 None。
DocStrings(文档字符串)
它能够帮助你更好地记录程序并让其更加易于理解。
def print_max(x,y):
'''Prints the maximum of two numbers.
The two values must be integers'''
x = int(x)
y = int(y)
if x > y:
print(x,'is maximum')
else:
print(y,'is maximum')
print_max(3,5)
print(print_max.__doc__)
该文档字符串所约定的是一串多行字符串,其中第一行以某一大写字母开始,以句号结束。第二行为空行,后跟的第三行开始是任何详细的解释说明。
用while和break语句实现无限猜数字大小。
while True:
x = input('please enter number x:')
if x =='quit':
break
y = input('please enter number y:')
if x > y:
print(x,'is maximum')
elif x == y:
print('the two numbers are eaual')
else:
print(y,'is maximum')