Python基础(五)- 函数

来源:互联网 发布:数据可视化原理与实践 编辑:程序博客网 时间:2024/06/05 14:58

返回布尔型或列表型的函数

布尔型

def isVowelWord(word):    word=word.upper()    vowels=('A','E','I','O','U')    for vowel in vowels:        if vowel not in word:            return False        return True##Determine if a word contains every vowelword=input("enter a word:")if isVowelWord(word):    print (word,"contains every vowel")else:    print (word,"does not contains every vowel")
enter a word:educationeducation contains every vowel

列表型

def occurringVowels(word):    word=word.upper()    vowels=('A','E','I','O','U')    includeVowels=[]    for vowel in vowels:        if (vowel  in word) and (vowel not in includeVowels):            includeVowels.append(vowel)    return includeVowels##Display the vowels appearing in a wordword=input("enter a word:")listOfVowels=occurringVowels(word)print("the following vowels occur in the word:",end="")stringOfVowels=" ".join(listOfVowels)print (stringOfVowels)
enter a word:importantthe following vowels occur in the word:A I O

无返回值函数

不包含任何return语句,它们可能有或者没有参数,并且调用时在单独的一行上放置它们的名字(跟着它们的实际参数)

无参数的函数

主函数(main)既没有参数也没有return语句

def main():    fullName=input(“enter a person's  full name:”)    print(“first name:”,firstName(fullName))def firstName(fullName):    firstSpace=fullName.index(“”)    givenName=fullName[:firstSpace]    return givenNamemain()

在这种格式下,程序包含了两个函数的一个序列,并以控制整个程序的名为name的函数开始。程序的最后一行调用了函数main,之后初始化要执行的任务。

变量作用域

Python提供了一种方法,使得一个变量可以被程序中任何部分识别,这样的变量叫做全局变量。一种将变量设为全局的方式就是将创建它的赋值语句放在程序的顶部。
任何函数都能读取到全局变量的值。然而它的值不能在函数的内部进行修改,除非修改语句之前有下面的语句形式:

global globalVariableName

global语句仅影响所在函数体内其后的语句。它不允许在其他函数内部修改全局变量的值。

命名常量

程序有时会使用多次用到的特殊常量。这样的常量有时表示利率或最小年龄。程序员的一个约定是创建一个全局变量,他的名字使用大写字母的单词,并且单词间使用下划线分隔,并赋给一个常量。
这个特殊的命名约定提醒程序员在程序执行的过程中不应该再给这个变量赋值。
由于Python允许给任何变量重新赋值,程序员要负责的不改变这个变量的值。这样的常量叫做命名常量。

库模块

Python通过称为库模块的文件支持函数的重用。库模块是一个扩展名为.py的文件,包含了可以被其他任何程序使用的函数和变量。
Python自带了一组库模块,也就是标准库。
如图
要想获得在库模块中的函数和变量的访问,可以在程序的开始位置放置以下形式的语句:

import moduleName

然后,模块中的函数可以在程序中通过函数名前附加模块名和句号的方式来使用。
import语句的一种变形是:
from moduleName import *
模块中的函数可以直接使用而不需要附加模块名和句号。