python基础3--函数
1、函数定义
你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
函数:程序中可重复使用的程序段。给一段程程序起一个名字,用这个名字来执行一段程序,反复使用(调用函数),用关键字 ‘def' 来定义,identifier(参数)
# -*- coding: utf-8 -*- # 没有参数和返回的函数
def say_hi():
print(" hi!")
say_hi()
say_hi() # 有参数,无返回值
def print_sum_two(a, b):
c = a + b
print(c)
print_sum_two(3, 6) def hello_some(str):
print("hello " + str + "!")
hello_some("China")
hello_some("Python") # 有参数,有返回值
def repeat_str(str, times):
repeated_strs = str * times
return repeated_strs
repeated_strings = repeat_str("Happy Birthday!", 4)
print(repeated_strings) # 全局变量与局部 变量
x = 60
def foo(x):
print("x is: " + str(x))
x = 3
print("change local x to " + str(x))
foo(x)
print('x is still', str(x)) x = 60
def foo():
global x
print("x is: " + str(x))
x = 3
print("change local x to " + str(x))
foo()
print('value of x is', str(x))
运行结果:

2、关于函数的参数,有以下三个用:默认参数,关键字参数,VarArgs参数
# -*- coding: utf-8 -*- # 默认参数: 如果没有传入参数,使用默认值
def repeat_str(s, times=1):
repeated_strs = s * times
return repeated_strs repeated_strings = repeat_str("Happy Birthday!")
print(repeated_strings) repeated_strings_2 = repeat_str("Happy Birthday!", 4)
print(repeated_strings_2) # 不能在有默认参数后面跟随没有默认参数
# f(a, b =2)合法
# f(a = 2, b)非法 # 关键字参数: 调用函数时,选择性的传入部分参数
def func(a, b=4, c=8):
print('a is', a, 'and b is', b, 'and c is', c) func(13, 17)
func(125, c=24)
func(c=40, a=80) # VarArgs参数
#当用*在前加入一个参数名时,python将默认参数传入的是一个list或tuple,即多个参数
#当用**在前加入一个参数名时,python将默认参数传入的是一个dict,即多个有关键字指明的参数
def print_paras(fpara1, fpara2, *nums, **words):
print("fpara1: " + str(fpara1))
print("fpara2: " + str(fpara2))
print("nums: " + str(nums))
print("words: " + str(words)) print_paras("hello", 1, 3, 5, 7, word="python", anohter_word="java")
运行结果:

python基础3--函数的更多相关文章
- python基础——匿名函数
python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...
- python基础——返回函数
python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ...
- python基础——sorted()函数
python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...
- python基础——filter函数
python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...
- python基础——匿名函数及递归函数
python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...
- 八. Python基础(8)--函数
八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x): ' ...
- python基础之函数详解
Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...
- Python学习笔记(一)python基础与函数
1.python基础 1.1输入与输出 输出 用print加上字符串,就可以打印指定的文字或数字 >>> print 'hello, world' hello, world > ...
- Day3 - Python基础3 函数、递归、内置函数
Python之路,Day3 - Python基础3 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...
- Python基础__函数
本节将进入函数的介绍,函数是Python基础中最精彩的部分之一,接下来将对函数做详细介绍.函数 函数就是对代码进行一个封装.把实现某一功能的代码进行封装到一起.下次需要使用时不需要进行编写代码直接调用 ...
随机推荐
- STS(Spring Tool Suite)下SSM(Spring+SpringMVC+Mybatis)框架搭建(二)
继完成controller配置并使用controller实现页面跳转,现连接数据库进行登录. 在SSM框架中,使用Mybatis与数据库连接,因此需要配置关于mybatis的配置. 废话少说直接开始: ...
- SQL Server 删除重复记录,只保留一条记录
原文地址:http://blog.csdn.net/eriato/article/details/17417303 有张表格之前没有设计关键字段的唯一约束,导致有时候执行插入操作时不小心执行了多次就出 ...
- 2018-2019-20175324实验一《Java开发环境的熟悉》实验报告
2018-2019-20175324实验一<Java开发环境的熟悉>实验报告 实验内容与结果 一.Java开发环境的熟悉-1 1.实验要求: 0 参考实验要求 1 建立“自己学号exp ...
- Spring源码学习-容器BeanFactory(一) BeanDefinition的创建-解析资源文件
写在前面 从大四实习至今已一年有余,作为一个程序员,一直没有用心去记录自己工作中遇到的问题,甚是惭愧,打算从今日起开始养成写博客的习惯.作为一名java开发人员,Spring是永远绕不过的话题,它的设 ...
- Burp Suite Pro 教程
1.Burp Suite Pro2.0.11破解版-2018.11.06更新 说明基地址 来源:http://ximcx.cn/post-110.html 启动;如果是用的burp2.0,把下面的代码 ...
- 电子科技大学实验中学PK赛(二)比赛题解
比赛地址:http://qscoj.cn/contest/27/ A题 FIFA强化 分析:这个题目要求说的比较明显,用几个if判断一下就好了.不要一判断完就输出,最好用一个ans储存下答案.输出答案 ...
- ABP入门系列(2)——领域层创建实体
ABP入门系列目录--学习Abp框架之实操演练 这一节我们主要和领域层打交道.首先我们要对ABP的体系结构以及从模板创建的解决方案进行一一对应.网上有代码生成器去简化我们这一步的任务,但是不建议初学者 ...
- 微服务(Microservices)和服务网格(Service Mesh)架构概念整理
注:文章内容为摘录性文字,自己阅读的一些笔记,方便日后查看. 微服务(Microservices) 在过去的 2016 年和 2017 年,微服务技术迅猛普及,和容器技术一起成为这两年中最吸引眼球的技 ...
- 最小可用id
题目:在非负数组(乱序)中找到最小的可分配的id(从1开始编号),数据量10000000. 题目解读:在一个不重复的乱序的自然数组中找到最小的缺失的那个数,比如1,2,3,6,4,5,8,11.那么最 ...
- Java面试题整理:这些Java程序员面试中经常遇见的题目,必须掌握才能有好结果
1.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时 ...