函数
    1、def
    2、命名
    3、函数体
    4、return 返回值

def get_return():
a = 1
return a

函数参数有 形参和实参
    定义几个形参就要传几个实参。
    形参接收传参的时候默认是一一对应的

1、普通参数

def get_return(b): # b为形参
a = b + 1
return a
get_return(3) # 实参

2、默认参数:(指定默认参数时,形参必须要放到末尾)

def get_value(aa, bb, cc = "ok")
print(aa, bb, cc)
get_value(11, 22, "no")

如果形参设有默认值,传参的时候可以传三个参数,也可以传2个参数
    传3个参数,cc就等于新的参数,否则就是默认参数
    
3、指定参数
get_value(bb = 21,aa = 5)

4、动态参数  可传多个参数
(1)*
默认都会当做元组的一个元素添加到元组中

def get_all_v(*value):
print(value) get_all_v(23) # (23,)
li = [23, 445, 66, "dsad"]
get_all_v(li) # ([23, 445, 66, 'dsad'],)
get_all_v(li, 34) # ([23, 445, 66, 'dsad'], 34)

传值加*的话 al里面的所有元素都会转换到元组中

get_all_v(*li)   # (23, 445, 66, 'dsad')
get_all_v(*li, 34) # (23, 445, 66, 'dsad', 34)

(2)**
默认都会当做字典的一个键值对(k:v)添加到字典中
传值时要指定k,v

def get_all_w(**value):
print(value)
v2 = [23, 543, 66]
get_all_w(k1="v1") # {'k1': 'v1'}
get_all_w(k2=v2) # {'k2': [23, 543, 66]} dic = {"k1": "v1", "k2": "v2"}
get_all_w(**dic) # {'k1': 'v1', 'k2': 'v2'}

(3)* ** 万能参数

def get_all_a(*v, **v1):
print(v)
print(v1)
get_all_a(11, 2, 33, k1="v1", k2="v2")
'''
(11, 2, 33)
{'k1': 'v1', 'k2': 'v2'}'''

str.format() 函数参数应用

li = ["niu", 20]
dic = {"name": "niu", "age": 28}
s1 = "name is {0}, age is {1}".format("niu", 20)
print(s1) # name is niu, age is 20
s1 = "name is {0}, age is {1}".format(*li)
print(s1) # name is niu, age is 20
s2 = "name is {name}, age is {age}".format(
name="niu",
age=28
)
print(s2) # name is niu, age is 28
s2 = "name is {name}, age is {age}".format(**dic)
print(s2) # name is niu, age is 28

函数拓展

函数传递参数时传递的是一个引用,引用值更新时,原定义的实参也会更新

def li_append(li):
li.append("ddd")
lis = [11, 22, 33, 44]
li_append(lis)
print(lis) # [11, 22, 33, 44, 'ddd']

全局变量
1、都可以读
2、如果在局域中[重新赋值]全局变量的话需要先global name
3、如果变量是列表或者字典时,全局变量可以追加
4、全局变量 变量名都大写

# 内置函数

# abs() 取绝对值
print(abs(-1)) #
# all() 函数内部参数全部为真则为真
print(all([1, -1, 2, -2, 3])) # true
print(all([1, -1, 2, -2, 0])) # false
print(all([1, -1, "", {}, (), []])) # false
# any 一个为真便为真
print(any((1, 0, "", {}, (), [], None))) # true
# bool 判断真假。返回true or false
print(bool(1)) # true
# bin() 数字十进制转2进制
print(bin(8)) # 0b1000
# oct() 数字十进制转八进制
print(oct(9)) # 0o11
# hex() 数字十进制转十六进制
print(hex(10)) # 0xa

Python 基础-python函数的更多相关文章

  1. python基础——匿名函数

    python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便.  在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...

  2. python基础——返回函数

    python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回.  我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ...

  3. python基础——sorted()函数

    python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...

  4. python基础——filter函数

    python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...

  5. python基础——匿名函数及递归函数

    python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...

  6. 八. Python基础(8)--函数

    八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x):     ' ...

  7. python基础之函数详解

    Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...

  8. Python学习笔记(一)python基础与函数

    1.python基础 1.1输入与输出 输出 用print加上字符串,就可以打印指定的文字或数字 >>> print 'hello, world' hello, world > ...

  9. Day3 - Python基础3 函数、递归、内置函数

    Python之路,Day3 - Python基础3   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...

  10. Python基础__函数

    本节将进入函数的介绍,函数是Python基础中最精彩的部分之一,接下来将对函数做详细介绍.函数 函数就是对代码进行一个封装.把实现某一功能的代码进行封装到一起.下次需要使用时不需要进行编写代码直接调用 ...

随机推荐

  1. 另一份Java应用调优指南之-前菜

    每一次成功的调优,都会诞生又一份的调优指南. 一些必须写在前面的军规,虽然与Java应用的调优没直接关联,但是测试同学经常不留神的地方. 1 独占你的测试机器 包括跑JMeter的那些机器. &quo ...

  2. 386. Lexicographical Numbers

    用DFS来做,先弄开头是1的,再弄开头是1的里面开头是1的,再开头是1的里面开头是1的里的开头是1的,再... 是吧-- 比N大了BREAK就行. 注意第一个循环是1-9,往后的循环是0-9. pub ...

  3. Hibernate输出SQL语句以便调试

    配置方法:1.打开hibernate.cfg.xml文件编辑界面,在Properties窗口处,点击Add按钮,选择Show_SQL参数,输入值为True. *另外,如果按照同样的步骤,分别加入以下参 ...

  4. 【Jsoup爬取网页内容】

    思路:根据给定URL分析其源码,得到所需的网页内容的位置,制定规则采集或下载之 采集的图片和文字示例: tags: tag:brazil tag:dog tag:pet tag:pointyfaced ...

  5. 【Android - MD】之CardView的使用

    CardView是Android 5.0新特性--Material Design中的一个布局控件,可以通过属性设置显示一个圆角的类似卡片的视图. 1.CardView的属性: app:cardCorn ...

  6. JQuery ajax调用asp.net的webMethod

    本文章转载:http://www.cnblogs.com/zengxiangzhan/archive/2011/01/16/1936938.html 在vs2010中,用JQuery ajax调用as ...

  7. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载四(使用程序载入事件)

    在了解了PhoneGap中都有哪些事件之后,本节将開始对这些事件的使用方法进行具体地介绍.本节要介绍的是程序载入事件,也就是deviceready.pause和resume这3个事件. [范例4-2 ...

  8. 另5个你不知道的HTML5接口API

    原文地址: 5 More HTML5 APIs You Didn’t Know Existed 演示地址: 全屏API Demo 原文日期: 2012年11月08日 翻译日期: 2013年08月13日 ...

  9. 教你搞定Android自定义View

    Android App开发过程中,很多时候会遇到系统框架中提供的控件无法满足我们产品的设计需求,那么这时候我们可以选择先Google下有没有比较成熟的开源项目可以让我们用,当然现在Github上面的项 ...

  10. Java——(三)Collection之Set集合、HashSet类

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.Set集合 Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中, ...