昨日简要:

1.文件操作:
1.1获得句柄:

f
= open(‘one.txt’,mode=’’,encoding=’utf-8’)

f
= open(‘../’) à返回上一层

f
= open(‘D:\test2\one.txt’,mode=’’,encoding=’utf-8’)

1.2 mode(模式)

mode
= ‘r’’w’’r+’’w+’’a+’’rb’’wb’’ab’’r+b’’w+b’’a+b’

(最常用的是
‘r+’,)

如果用’b’open,open句柄不要写encoding,其余地方记得带encoding。

1.3 光标 seek()

seek(0,0) ß à seek(0) 光标在开头

seek(0,2) 光标在结尾

光标 tell() à报告当前光标位置

 truncate([size]) 
à截断文件,如果有可选参数size,则表示截断文件为
size
个字符。如果没有指定size
,则从当前位置起截断,截断之后size后面的所有字符都被删除。

1.4 strip()

去掉空格、换行(\n)

1.5 readline

readline à 内存容易爆炸

解决内存问题 :循环取 for line in f:

1.6 with

文件操作句柄

import os
#方法一
def test10():
#打开文件,创建新文件
with open("day008/day_008_1.txt",mode='r',encoding='utf-8') as f1,\
open("day008/day_008_1_new.txt",mode='w',encoding='utf-8') as f2: content = f1.read()
new_content = content.replace('飞将','李广') # 替换内容
f2.write(new_content) # 写到 f2 中
os.remove('day008/day_008_1.txt') #删除原文件
os.rename('day008/day_008_1_new.txt','一生未封侯.txt') # # 方法二
def test11():
f1 = open("day008/day_008_1.txt", mode='r', encoding='utf-8')
f2 = open("day008/day_008_1_new.txt", mode='w', encoding='utf-8')
for line in f1: #一行一行取
new_line = line.replace('李广','飞将')
f2.write(new_line)
os.remove('day008/day_008_1.txt')
os.rename('day008/day_008_1_new','李广特点守')
f2.flush()

今日内容:

1.   冒泡排序:前后相互比较大小

 # 冒泡排序
li = [12,23,3,6,5,34,16,37,2]
li1 = len(li)
while li1>0:
for i in range(li1 - 1):
if li[i] > li[i + 1]:
l = li[i]
li[i] = li[i+1]
li[i+1] = l
# li[i],li[i+1]=li[i+1],li[i]
li1 -=1
print(li)
详解参考菜鸟教程:https://www.runoob.com/python3/python-bubble-sort.html

2.   函数:

2.1  函数的概念:对代码块和功能的封装、定义。先定义--> 调用;“函数”就像一个程序内的小程序

2.2  函数的定义:

def 函数名() :

代码块 -- 函数体

函数的调用:

直接写函数名

函数的一个主要目的就是将需要多车执行的代码放在一起。

  • return 返回值:

返回一个值

返回多个值,返回的是一个(元组)。

  • 遇到return时,函数结束。函数后面的代码块不再执行。
  • return这句话如果不写(或没有内容),默认返回None

2.3 函数的参数:

  • ·形参:写在函数声明处位置的变量,形式上是一个完成整的参数,表示这个函数需要‘它/它们’。
  • ·实参:写在函数调用时,形参相应位置的值。实际执行的时候给函数传递具体内容。表示给函数‘它/它们’。

参数分类:

  • 位置参数,在传参过程就中把‘a’‘b’按照声明处形参的位置顺序依次给他们赋值。
  • 关键字参数:不需要记忆每个参数的位置,只要记住参数的名字就好了。。
  • 混合参数:位置参数和关键字参数的混合使用

小结:

位置参数(按照顺序,依次赋值)

关键字参数(只需要记住关键字,实参中给关键字赋值)

混合参数(位置参数必须在关键字参数的前面。)

·默认值参数:在函数声明时,直接给出函数参数的默认值。在调用的时候默认值输出这个值,也可以在实参上修改。

传参:将实际参数传给形式参数的过程。

当args与位置参数默认参数混用的情况下:(注意三者的顺序)

示例一、(三者顺序是:位置参数、默认参数、*args)

 def foo(x,y=1,*args):
pass
foo(1,2,3,4,5)#其中的x为1,y=1的值被2替换,3,4,5都给args,即args=(3,4,5)

示例二、(三者顺序是:位置参数、*args、默认参数)

 def foo(x,*args,y=1):
pass
foo(1,2,3,4,5)#其中的x为1,2,3,4,5都给args,即args=(2,3,4,5),y始终为1

**kwargs: (表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现)。关于**kwargs与位置参数、*args、默认参数混着用的问题(注意顺序)

位置参数、*args、**kwargs三者的顺序必须是位置参数、*args、**kwargs,不然就会报错;

实例:

 def foo(x,*args,**kwargs):
pass
foo(1,2,3,4,y=5,a=6,b=7)
#其中的 x 为1 , 2、3、4都给args,即args=(2,3,4),y=5,a=6,b=7以字典形式传给kwargs 即kwargs= {'y':5,'a':6,'b':7}

3.   None值

在Python中有一个值称为 None,它表示没有值。None 是 NoneType(空字节)数据类型的唯一值(其他编程语言可能称这个值为null,nil

或undefined)。就像布尔值 True 和 False 一样,None 必须大写首字母。

如果你希望变量中存储的东西不会与一个真正的值混淆,这个没有值的值就可能有用。有一个使用None的地方就是print() 的返回值。print()函数在屏幕上显示文本,但它不需要返回任何值,这和len() 或 input() 不同。但既然所有函数调用都需要求值为一个返回值,那么print() 就返回None.

 >>>span = print(‘hello!’)
hello!
>>>None = span
True

在幕后,对于所有没有 return 语句的函数定义,Python都会在末尾加上return None。这类似于 while 或 for 循环隐式地以 continue语句结尾。而且,如果使用不带值的return 语句(也就是只有return关键字本身),那么就返回None。

4.   总结

站在实参的角度:

  1. 位置参数
  2. 关键字参数
  3. 混合参数 (关键字参数放在位置参数后面)

站在形参的角度:

    1. 位置参数
    2. 默认值参数
    3. 默认值参数和位置参数混合使用。顺序:先写位置参数,在写默认值参数。

python笔记007-函数的更多相关文章

  1. Python:笔记(2)——函数与模块

    Python:笔记(2)——函数与模块 Python函数 关于函数 1.我们可以使用Help来查看函数的帮助信息 2.调用函数的时候,如果传入的参数数量或者类型不符合均会报错. 3.函数名其实就是一个 ...

  2. 从0开始的Python学习007函数&函数柯里化

    简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...

  3. python笔记之函数

    函数 >>> def funTest(param1): ... 'this is function document string.' #正文需要有缩进 ... return par ...

  4. Python学习(007)-函数的特性

    一..函数是什么 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 1.代码重用 2.保持一致性 3.可扩展性 二.创建 2.1格式 de ...

  5. python笔记22-literal_eval函数处理返回json中的单双引号

    前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...

  6. python笔记4 - 函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这 ...

  7. Python笔记008函数(2)

    1.        昨日内容回顾: def 函数(): 函数体 return 值 如果不写return,默认返回None.可以单独返回一个值,也能够以元组的形式返回多个值.(不要把print和retu ...

  8. python笔记-字符串函数总结

    字符串函数: chr() 数字转ASCII chr(96)="a" ord() ASCII转数字 ord("a")=96 isspace() 判断是否为空格 s ...

  9. Python笔记:调用函数,带扩号和和不带括号的区别

    调用函数,如果带括号,那么是调用函数运行后的结果, 调用函数不带括号,调用的是函数本身 例如: def cun (a,b): return a+b print(cun) : 调用函数,打印的是函数 p ...

  10. Python笔记-built-in函数,文件操作,lambda函数

    Built-In: i = abs(123) print(i) j = abs(-123) print(j)#123#123 #all,需要传一个可迭代的东西,里面所有的值是真,返回真 r1 = al ...

随机推荐

  1. PL/SQL配置和连接远端数据库

    1. 安装与配置 (1) 安装 因为是免安装的绿色版,所以解压到目录就可以了,保证目录中没有空格.下划线和中文字符. 还有一点,PL/SQL需要和Oracle的版本一致,都是32位或者都是64位,否则 ...

  2. TCP HTTP SOCKET之间的有什么关系

    网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可 ...

  3. cgdb UTF-8乱码

    support utf-8 cgdb github上的issues里面有人提到了这个问题,维护者回复的是需要使用libncursesw这个支持宽字符的库来解决这个问题. 查看是否安装了该库ldconf ...

  4. 2018-2019-2 20165114《网络对抗技术》 Exp 8 Web基础

    Exp 8 Web基础 目录 一.实验内容 二.基础问题回答 (1)什么是表单 (2)浏览器可以解析运行什么语言. (3)WebServer支持哪些动态语言 三.实践过程记录 3.1Web前端HTML ...

  5. CRF 初步了解

    国外有一个很著名的条件随机场的教程,是英文的,原文: http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields ...

  6. jeecg使用心得

    接触到jeecg框架是在去年,接触到了jeecg开源框架,此框架为企业级急速开发框架,不了解的可以百度下这类框架的,对于目前状态来说,此框架确实也满足了所需,此刻就开始接触jeecg框架,去年六七月份 ...

  7. android 上下滑动标题栏和状态栏改变颜色实现

    import android.content.Context; import android.util.AttributeSet; import android.widget.ScrollView; ...

  8. IO流概述

    作用: 处理设备之间的数据传输的 I: Input(输入) , O: Output(输出) 什么是输入和输出? 我们说输入和输出问题是站在内存的角度而言 , 如果我们程序读取硬盘上的数据那么就是输入 ...

  9. JavaScript箭头函数(Lambda表达式)

    箭头函数也叫lambda表达式 据说其主要意图是定义轻量级的内联回调函数 栗有: 1 var arr = ["wei","ze","yang" ...

  10. Jupyter Notebook 远程连接配置(转载)

    转载博客的Jupyter Notebook远程连接配置方法. 0 - 参考资料 https://www.jianshu.com/p/08f276d48669?utm_campaign=maleskin ...