python学习之路day5

即:s_gbk.decode("gbk").encode("utf-8")    

#标明自己(s_gbk)是什么编码(gbk),要解码(decode)or编码(encode)

import sys

print(sys.getdefaultencoding())      #显示  utf-8   文件编码为 utf-8s="你好"                    #但是s是unicode编码                   #因此s.decode()是不存在的


函数与函数式编程

1.面向对象  >>类   class

2.面向过程  >>过程  def

3.函数式编程  >>函数  def



过程.VS.函数

过程和函数都可以调用,过程就是没有返回值的函数

但是在python中,过程也被当成函数,返回值为None,函数也可以没有返回值



return的个数,类型都不限定!

但是---------实际上python返回的是一个元组,里面包含了上面这些(选中的)数据



实参与形参

def test(x,y)括号里的参数是形式参数,接收实际参数的值,def之外的test(y,x)是实际参数

def test(x,y,z):
  print(x)
  print(y)
  print(z)
test(2,z=1,y=4)    #注意z,y的顺序

结果依次是:2, 4, 1

def test(x,y=1,z=2):    #默认参数y=1,z=2,即实参只有一个时,y,z也有默认的值(1,2)

形参数量应该等于实参,实参可能少(有默认参数)即:实参<=形参

当实参数量不固定时,形参的形式应该为:

def test(*args)    #args为变量名  注意*号

这样args可以接收多个实参,并放在一个元组里(--,--,--,--)



这样*args就接受了(2,3,4,5,6,7),x接收了1

*args接收N个位置参数,转换成元组的方式



 **kwargs:接收N个关键字参数,转换成字典的方式

def test2(**kwargs):

  print(kwargs)

test2(name=‘alex‘,age=8,sex=‘F‘)    #关键字参数指:xxx=yyy的形式

像上面的*args和**kwargs这样的参数组,必须放在位置参数的后面!



局部变量和全句变量

def 里面的变量就是局部变量,只在def里面作用

全局变量是在整个程序中生效的变量,尽管在def中全局变量可以被修改,但出了def全局变量就还是原来定义的值。

当全局变量与局部变量同名时:

在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

但是------------------如果def里面申明了全局变量,则真正修改了全局变量

格式:global 全局变量

全局变量一定要在def外面显示的定义而不是在函数里定义

但绝对不要使用这种方法(在函数里面定义全句变量),一旦出错导致程序的调试极其麻烦!



虽然上面说了函数里面不能改全局变量,但是这仅仅针对字符串和整数;像列表,字典,集合,类等都可以在局部里改全局的(在def函数里改全句变量的值)(元组本来就不能改)


递归

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数

递归特性:

1. 必须有一个明确的结束条件

2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

最多递归999次


高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

def add(x,y,f):

    return f(x) + f(y)

res = add(3,-6,abs)

print(res)

这个例子abs是内置的函数,取绝对值。f接收abs函数,最后返回9

时间: 2024-10-03 23:16:22

python学习之路day5的相关文章

Python学习之路--Day5

本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.p

python 学习之路-day5

格式化输出 name=input("input your name:")age=int(input("input your age:"))job=input("input your job:")msg='''----------------Name: %sAge : %dJob : %s-----end---------''' %(name,age,job)print(msg)

Python学习之路-Day1-Python基础

Python学习之路第一天 学习内容: 1.Python简介 2.安装 3.第一个Python程序 4.变量 5.字符编码 6.用户输入 7.表达式if..else语句 8.表达式for语句 9.break和continue 10.while循环 11.字符串格式化 1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOB

Python学习之路

Python学习之路 目录 Python学习之路[第一篇]:流程控制,用户交互,语法要求,变量,字符,注释,模块导入的使用 Python学习之路[第二篇]:文件,字符串,列表,元组,字典,集合的使用 更新中...

Python学习之路-装饰器&生成器&正则表达式

装饰器 通俗的讲,装饰器就是在不改变源代码基础上,给源代码增加新功能. 不改变函数的源代码.调用方式.返回值等,给函数增加新功能. 经典案例:登录装饰器, def login_decorator(func):     def inner():         if USER_TEMP["status"] == False:             print("\033[31;1m用户未登录,请先登录\033[0m")             login_atm()

Python学习之路【第一篇】-Python简介和基础入门

1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是一种开发语言,而且已经进阶到主流的二十多种开发语言的top 5(数据源自最新的TIOBE排行榜). 来头不小啊!二十多种主流的开发语言,我该从哪一个开始呢?人生苦短,let‘s python! 1.2 Python的由来和发展趋势 Python的前世源自鼻祖“龟叔”.1989年,吉多·范罗苏姆(Gu

Python学习之路——强力推荐的Python学习资料

资料一:程序媛想事儿(Alexia)总结 Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用.它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务. Python上手虽然容易,但与其它任何语言一样要学好Python并非一日之功.我的Pyth

Python学习之路 001

Python学习之路 从今天起开始写Python学习的经历了,哈哈. 了解Python是在我想入坑Linux运维这条路开始的. 我是计算机出身有着一定编程的功底,刚开始接触Python的时候觉得Python我学习过的c,c++特性完全不一样.觉得为什么这东西会这么智能 就拿Hello World来说 C: 1 #include<stdio.h> 2 3 void main() 4 { 5 printf("Hello World"); 6 } C++: 1 #include&

Python 学习之路(二)

Python 学习之路(二) 以下所用的是Python 3.6 一.条件语句 简单判断 1 if 判断条件: 2 执行语句-- 3 else: 4 执行语句-- 复杂判断 1 if 判断条件1: 2 执行语句1-- 3 elif 判断条件2: 4 执行语句2-- 5 elif 判断条件3: 6 执行语句3-- 7 else: 8 执行语句4-- 二.循环语句 2.1 while语句 和其他语言一样,不同的是多了else语句.在 python 中,while - else 在循环条件为 false