今天小编给大家分享一下Python函数语句怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
Python 中函数的应用非常广泛,比如 input() 、print()、range()、len() 函数等等,这些都是 Python 的内置函数,可以直接使用。
如果调用print()或者len()函数,你会传入一些值,放在括号之间,在这里称为“参数”。也可以自己定义接收参数的函数。
>>> def hello (name):print('hello '+ name) >>> hello('alice') hello alice >>> hello('bob') hello bob
在这个程序的hello()函数定义中,有一个名为name的变元。“变元”是一个变量,当函数被调用时,参数就存放在其中。
【注】保存在变元中的值,在函数返回后就丢失了。
函数调用求值的结果,称为函数的“返回值”。
用def语句穿创建函数时,可以用return语句指定应该返回什么值。return语句也包含以下部分
如果在return语句中使用了表达式,返回值就是该表达式求值的结果。
在python中有一个值称为None,他表示没有值。None是NoneType数据类型的唯一值。 print()函数在屏幕上显示文本,但他不需要返回任何值,这就和len()和input()不同。但既然所有函数调用都需要求值为一个返回值,那么print()就返回None
>>> spam = print('hello') hello >>> None ==spam True >>>
在幕后,对于没有return语句的函数定义,python都会在末尾加上return None。这类似于while或者fo循环隐式的以continue语句结尾。而且,如果使用带值的return语句(也就是只有return关键字本身),那么就返回None。
大多数参数是由他们在函数调用中的位置来识别的。但是“关键字参数”是有函数调用是加在他们前面的关键字来识别的。关键字参数通常用于可选变元*。例如,print()函数有可选的变元end和sep,分别指定在参数末尾打印什么,以及在参数之间打印什么来隔开它们*
>>> print('dog','cat','mice') dog cat mice >>> print('dog','cat','mice',sep=',') dog,cat,mice >>>
在被调用函数内赋值的变元和变量,处于该函数的“局部作用域”,在所有函数之外复制的变量,属于“全局作用域”。处于局部作用域的变量,被称为“局部变量”。处于全局作用域的变量,被称为“全局变量”。一个变量必是其中的一种,不能既是全局有事局部的。 可以将“作用域”看成是变量的容器。当作用域被销毁时,所有保存在该作用域内的变量值就被丢弃了。
作用域很重要,理由如下:
3.5.1 局部变量不能在全局作用域内使用
def spam(): eggs = 111 spam()print(eggs)
如果运行这个程序就会出错,eggs变量只属于spam()调用所创建的局部作用域。
3.5.2 局部作用域不能使用其他局部作用内的变量
def spam(): eggs = 99 bacon() print(eggs) def bacon() ham = 101 eggs = 0 spam()
程序运行时,spam()被调用,创建一个局部作用域。局部变量eggs被赋值为99。然后bacon()函数被调用,创建第二个作用域。多个局部作用域能同时存在。在这新的局部作用域中,局部变量ham也被创建被赋值为101。局部变量eggs也被创建并赋值为0。 当bacon()返回时,这次调用的局部作用域被销毁。程序执行在spam()函数中继续,打印出eggs的值。这次spam()调用的局部作用域任然存在,eggs被赋值为99.
3.5.3 全局变量可以在局部作用域中读取
def spam(): print(eggs) eggs = 42 spam()print(eggs)
如果需要在一个函数内修改全局变量,就是用global语句
有四条法则,来区分一个变量是处于局部作用域还是全局作用域
当程序运行出错时,可以用try和except语句来处理。那些可能出错的语句被放在try子句中。如果错误发生,程序执行就转到接下来的except子句开始处。
如果try子句中的代码导致一个错误,程序执行就立即转到except子句中的代码,一旦执行跳到except子句的代码中,就不会回到try的子句中了
import random secretNumber = random.randint(1,20)print('i am think of number between 1 and 20:')for guessesTaken in range(1,7): print('take a guess') guess = int(input()) if guess print('you guess is too low.') elif guess > secretNumber: print('you guess is too high') else: breakif guess == secretNumber: print('good job!the number i was thinking of was ' + str(secretNumber)+ ' and you guessed my number in ' + str(guessesTaken) + ' guesses')else: print('Nope. the number i was thinking of was ' + str(secretNumber))
Collatz 序列 编写一个名为 collatz()的函数,它有一个名为 number的参数。如果参数是偶数,那么 collatz()就打印出 number // 2,并返回该值。如果 number是奇数,collatz()就打印并返回 3 * number + 1。
然后编写一个程序,让用户输入一个整数,并不断对这个数调用collatz(),直到函数返回值1(令人惊奇的是,这个序列对于任何整数都有效,利用这个序列, 你迟早会得到 1!既使数学家也不能确定为什么。你的程序在研究所谓的“Collatz 序列”,它有时候被称为“最简单的、不可能的数学问题”)。
在前面的项目中添加 try 和 except 语句,检测用户是否输入了一个非整数的字符串。正常情况下,int()函数在传入一个非整数字符串时,会产生 ValueError 错误,比如 int(‘puppy’)。在 except子句中,向用户输出一条信息,告诉他们必须输入一个整数。
示例代码1:
def collatz(number): if number == 1: return 1 elif number % 2 == 0: numbers = number//2 print(numbers) collatz(numbers) elif number % 2 == 1: numbers = 3*number+1 print(numbers) collatz(numbers)print('please input a number') try: number = int(input()) collatz(number) except ValueError: print('please input a integer number')
示例代码 2:
def collatz(number): if number % 2 == 0: numbers = number//2 return numbers else: numbers = 3*number+1 return numbersprint('please input a integer number') try: number=int(input()) while collatz(number) != 1: print(collatz(number)) new_number=collatz(number) number = new_number collatz(number) print(collatz(number)) except ValueError: print('please input a integer')
以上就是“Python函数语句怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。