python学习第五天 ----- 函数
1. 内置函数
2.自定义函数:
def funcname(parameter_list):
pass
import sys
sys.setrecursionlimit(100000)
def damage(skill1, skill2):
damage1 = skill1 * 3
damage2 = skill2 * 2 + 10
return damage1, damage2 damages = damage(3, 6)
print(type(damages))
//<class 'tuple'>
def damage(skill1, skill2):
damage1 = skill1 * 3
damage2 = skill2 * 2 + 10
return damage1, damage2 skill1_damage, skill2_damage = damage(3, 6)
print(skill1_damage, skill2_damage) //9 22
3.序列解包与链式赋值:
d = 1,2,3
print(d)
# (1, 2, 3)
# <class 'tuple'>
d = 1,2,3
a, b, c = d
a, b, c = 1,2,3
print(a, b, c)
# 1 2 3
a, b = [1, 2, 3]
#Traceback (most recent call last):
# File ".\c4.py", line 12, in <module>
# a, b = [1, 2, 3]
#ValueError: too many values to unpack (expected 2)
#a, b = [1, 2]
#print(a, b)
## 1 2 a, b = [1]
Traceback (most recent call last):
File ".\c4.py", line 12, in <module>
a, b = [1]
ValueError: not enough values to unpack (expected 2, got 1)
a = b = c = 1
print(a, b, c)
#1 1 1
4.必须参数与关键字参数:
必须参数:
def add(x, y):
result = x + y
return result
add(1)
# Traceback (most recent call last):
# File ".\c1.py", line 12, in <module>
add(1)
# TypeError: add() missing 1 required positional argument: 'y'
关键字参数:
可以指明我传入参数是谁,此时就不需要按照顺序去传入参数。
def add(x, y):
print(x, y) c = add(y = 3, x = 2)
# 2 3
默认参数:
def print_student_files(name, gender='男', age=22, college="华北水利水电大学"):
print('我叫' + name)
print('我今年' + str(age) + '岁了')
print('我是' + gender + '生')
print('我在' + college + '上学') print_student_files('鸡小萌', '男', 18, '人民路小学')
print('_______________________________________________')
print_student_files('五六七')
print('_______________________________________________')
print_student_files('果果', age = 17)
我叫鸡小萌
我今年18岁了
我是男生
我在人民路小学上学
_______________________________________________
我叫五六七
我今年22岁了
我是男生
_______________________________________________
我叫果果
我今年17岁了
我是男生
我在华北水利水电大学上学
print_student_files('果果', gender = '女', 17, college='牛津中学')
File "c6.py", line 13
print_student_files('果果', gender = '女', 17, college='牛津中学')
^
SyntaxError: positional argument follows keyword argument
可变参数:
def demo(*param):
print(param)
print(type(param)) demo(1,2,3,4,5,6)
#结果:
#(1, 2, 3, 4, 5, 6)
#<class 'tuple'>
def demo(*param):
print(param)
print(type(param)) a = (1, 2, 3, 4, 5, 6)
demo(*a)
def demo(param1, *param, param2 = 2):
print(param1)
print(param2)
print(param) demo('a', 1,2,3, param2 = '3') #a
#3
#(1, 2, 3)
关键字可变参数:
def city_temp(**param):
print(param)
print(type(param))
pass city_temp(bj = '32', xm = '23', sh = '31') #{'bj': '32', 'xm': '23', 'sh': '31'}
#<class 'dict'>
def city_temp(**param):
for key, value in param:
print(key, ':', value) city_temp(bj = '32', xm = '23', sh = '31') #b : j
#x : m
#s : h
def city_temp(**param):
for key, value in param.items():
print(key, ':', value) city_temp(bj = '32', xm = '23', sh = '31') #bj : 32
#xm : 23
#sh : 31
def city_temp(**param):
for key, value in param.items():
print(key, ':', value) a = {'bj': '32c', 'sh':'31c'}
city_temp(**a) #PS F:\pythonlearn\Demo\eight> python .\c8.py
# bj : 32c
#sh : 31c
5.变量作用域:
此处可以看到与javascript中的作用域有很大的不同。先来看代码:
c = 50 def add(x, y):
c = x + y
print(c) add(1, 2)
print(c)
#3
#50
c = 10 def demo():
print(c) demo() #10
def demo():
c = 50 for i in range(0, 9):
a = 'a'
c += 1
print(c)
print(a) demo() #59
#a
6.作用域链:
c = 1 def func1():
c = 2
def func2():
c = 3
print(c)
func2() func1() //依次将 c = 3, c = 2这两行代码注释,得到打印的结果分别是3, 2, 1

7.global关键字:
def demo():
global c
c = 2 demo() print(c)
#2
import c10
print(c10.c) //2
import c10
print(c) //c是未定义,因此,这个c并不是在项目中全局
python学习第五天 ----- 函数的更多相关文章
- Python学习(五)函数 —— 内置函数 lambda filter map reduce
Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...
- Python学习笔记五,函数及其参数
在Python中如何自定义函数:其格式为 def 函数名(函数参数): 内容
- Python学习(五)函数 —— 自定义函数
Python 自定义函数 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print()等.也可以创建用户自定义函数. 函数定义 函数定义的简单规则: 函数代码块以de ...
- python学习第五天--函数进阶
局部变量与全局变量下面代码中,old_price,rite为全局变量,final_price为局部变量 globals() 声明全局变量,在函数内可修改函数外的变量 内嵌函数:函数当中嵌套函数 闭包: ...
- python学习第五次笔记
python学习第五次笔记 列表的缺点 1.列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2.列表只能按照顺序存储,数据与数据之间关联性不强 数据类型划分 数据类型:可变数据 ...
- Python学习第五堂课
Python学习第五堂课推荐电影:华尔街之狼 被拯救的姜哥 阿甘正传 辛德勒的名单 肖申克的救赎 上帝之城 焦土之城 绝美之城 #上节内容: 变量 if else 注释 # ""& ...
- Python学习笔记之常用函数及说明
Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...
- python学习交流 - 内置函数使用方法和应用举例
内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函 ...
- Python学习(六) —— 函数
一.函数的定义和调用 为什么要用函数:例如,计算一个数据的长度,可以用一段代码实现,每次需要计算数据的长度都可以用这段代码,如果是一段代码,可读性差,重复代码多: 但是如果把这段代码封装成一个函数,用 ...
随机推荐
- 利用VS2017制作软件安装包与卸载程序
本博客讲述如何利用VS2017制作安装包以及相应的卸载程序,并解决过程中可能遇到的问题 一.制作安装程序 1.打开VS2017,新建项目,选择如下图所示程序: 新建成功后,会出现如下图所示目录: 2. ...
- JSP启动,错误500,实例化Servlet类异常
jps的页面报 HTTP 500 -Internal Server Error 实例化Servlet类[servlet.Userservler]异常 javax.servlet.ServletE ...
- 找不到package
在rosrun (前面要有roscore)显示 cannot find the package 只需要一次 永久有效 catkin _ws 是工作空间 rhl@rhl-Lenovo-G480:~$ e ...
- first day for my bolg
做为一名毕业不久的兢兢业业的前端小白,傻到一直用word做笔记,还有各种手抄(捂脸),下定决心以后改用博客,据说大神们都是这么做的!嘿嘿,先把各种笔记腾上来,内容实在惨不忍睹各种智商感人,希望不要有人 ...
- Inception系列之Inception_v1
目前,神经网络模型为了得到更好的效果,越来越深和越来越宽的模型被提出.然而这样会带来以下几个问题: 1)参数量,计算量越来越大,在有限内存和算力的设备上,其应用也就越难以落地. 2)对于一些数据集较少 ...
- Java 实现输入公历日期输出农历日期、生肖、天干地支、节日、节气等信息
最近的工作中客户要求前台页面展示日历,日历内容包括:农历年月日日.公历年月日.生肖.天干地支.农历节日.公历节日.24节气等信息,之前在网上查找资料关于Java实现方面的文章不少,但是大多数针对节气. ...
- php 获取抖音id
<?php public function getid($dy_url){ $header=get_headers($dy_url); $str = "/^.*?(\d+).*/&qu ...
- java enum 枚举值
public enum PieChartEnum { PIE00("pie00"), PIE10("pie10"), PIE11("pie11&quo ...
- wait()系统调用分别演示在父子进程
废话不多说开代码 在父进程调用wait() #include<stdio.h> #include<unistd.h> #include<sys/wait.h> in ...
- Go语言内存分配(简述 转)
在Go语言里,从内存的分配到不再使用后内存的回收等等这些内存管理工作都是由Go在底层完成的.虽然开发者在写代码时不必过度关心内存从分配到回收这个过程,但是Go的内存分配策略里有不少有意思的设计,通过了 ...