函数组成:函数名、函数体、函数调用
函数主要目的就是将需要多次执行的代码放一起
1、def语句和参数
2、返回值和return语句
一般来说,函数调用求职的结果,成为函数的“返回值”
return语句包含两个部分:return关键字 函数应该返回的值或表达式
3、关键字参数和print()
random.randint(1,10)返回1到10之间的一个随机数,第一个参数是范围的霞姐,第二个参数是范围的上界(random.randint(1,10)会导致错误)
print()函数自动在传入的字符串末尾添加了换行符,但是,可以设置end关键字参数,将它变成另一个字符串
打印出来的内容是helloworld
如果向print()传入多个字符串,该函数就会自动用一个空格分割它们
但是你可以传入sep关键字参数,替换掉默认的分割字符串
4、局部和全局作用域
局部变量不能再全局作用域中的代码中使用;
局部作用域不能使用其他局部作用域的变量;
全局变量可以在局部作用域中读取,局部作用域可以访问全局变量;
局部变量名和全局变量名可以相同
5、global语句
如果需要在一个函数内修改全局变量,就使用global语句,备注:代码按顺序执行
6、异常处理
错误可以由try和except语句来处理,那些可能出错的语句被放在try子句中。如果错误发生,程序执行就转到接下来的except子句开始处
一旦执行跳到except子句的代码,就不会回到try子句,它会继续照常向下执行
7、一个小程序:猜数字
8、实践项目
编写一个名为collatz()的函数,它有一个名为number的参数。如果参数是偶数,那么collatz()就打印出number//2,并返回该值。如果number是奇数,collatz()就打印并返回3*number+1.然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1
在前面的项目中添加try和except语句,检测用户是否输入一个非整数的字符串