博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础第三课
阅读量:5076 次
发布时间:2019-06-12

本文共 2335 字,大约阅读时间需要 7 分钟。

Python 函数

函数能提高应用的模块性,和代码的重复利用率。我们之前已经使用过一些Python提供的内建函数,比如print()。当然我们也可以自己创建函数,叫做自定义函数。

Python 函数定义规则

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。

任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

Python 函数定义的语法

Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):    函数体

Python 函数的定义示例

# 例:定义函数,输出”Hello World”def hello():    print("Hello World!")

Python 函数的调用

函数不调用就不会执行。调用函数通过函数名完成。

# 例:调用我们之前定义的hello函数:def hello() :    print("Hello World!")hello()

输出:

Hello World!

Python 函数的参数传递

def hello(name) :    print("Hello {}".format(name))hello('Mrzhang')

输出:

Hello Mrzhang

Python 函数关键字参数

def hello(name,age=18) :    print("Hello my name is {},今年{}岁".format(name,age))hello('Mrzhang')hello('Mrzhang',22)hello(age=66,name='Mrli')

输出:

Hello my name is Mrzhang,今年18岁Hello my name is Mrzhang,今年22岁Hello my name is Mrli,今年66岁

注:参数中传入不可变类型的数据,相当于将原数据复制了一份.

注:参数中传入可变类型的数据,可以对原有数据进行操作,也可以重新赋值.

Python 函数的return语句

def hello(name) :    print("Hello {}".format(name))    return '我是一个字符串返回值'hello('Mrzhang')print('-----我是一条分割线-----')print(hello('Mrli'))

输出:

Hello Mrzhang-----我是一条分割线-----Hello Mrli我是一个字符串返回值

变量作用域

Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这些语句内定义的变量,外部也可以访问.

# 例:x = int(10)             # python内置作用域y = 2                   # 当前模块中的全局变量Globaldef outfuction():    outfx = 2           # 外层作用域    def infunction():        infx = 3        # 局部作用域

全局变量和局部变量

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。

# 例:total = 0;                  # 这是一个全局变量def sum( arg1, arg2 ):    total = arg1 + arg2     # total在这里是局部变量.    print ("函数内是局部变量 : ", total)    return totalsum( 10, 20 )print ("函数外是全局变量 : ", total)

内置函数

内置函数见菜鸟教程

模块

模块的概念

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py

模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。

模块的使用

import 语句

import os            # 导入系统内置模块 osprint (os.listdir()) # 调用os模块的listdir()方法 遍历当前文件夹的所有文件

输出:

['test.py'] # 你输出的和我可能不太一样,需要查看你当前目录下有哪些文件

自建一个模块 并写入两个方法 一个说你好 一个说拜拜

import img
然后导入 并调用两个方法
import img2
通过绝对路径调用模块
import img3

from…import 语句

导入模块中的指定 部分/方法 到当前命名空间下

from tool.test1 import sayHello,sayByesayBye()sayHello()

输出:

Byehello

如下图:

import img4

Python dir()函数

内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回.

import img5

转载于:https://www.cnblogs.com/Mrzhang3389/p/9545312.html

你可能感兴趣的文章
[AngularJS + Unit Testing] Testing a component with requiring ngModel
查看>>
[React Native] State and Touch Events -- TextInput, TouchableHighLight
查看>>
[Javascript] Promise-based functions should not throw exceptions
查看>>
雷军说,小米是想“纵向变大”
查看>>
Django-Ajax
查看>>
WebService 为什么添加Web引用后能远程调用
查看>>
Divide Two Integers leetcode java
查看>>
JAVA的GC机制 (转)
查看>>
WAKE-WIN10-SOFT-VS2013及工具
查看>>
BZOJ2957: 楼房重建(分块)
查看>>
BZOJ2199: [Usaco2011 Jan]奶牛议会(2-SAT)
查看>>
Vijos / 题库 / 输油管道问题
查看>>
洛谷2017 5月月赛R1
查看>>
连接mysql数据库,创建用户模型
查看>>
c# 通过 OLEDB连接Access,DBF。
查看>>
SetTimeout直接执行没有延时
查看>>
Future设计模式
查看>>
Excel -- 实用技巧
查看>>
json字符串和dict互转
查看>>
Canvas文本绘制
查看>>