python 函数中参数转行 python write函数换行_打开文件

本章小结

学习越往后越意识到总结的重要性

特别是语法基础,东西太多

不用是真的会直接忘掉

我在总结本文的时候就发现

我当时觉得学得很好很扎实

自信不会忘记的东西,

真的已经被我忘掉了

还不得不依靠百度来解决问题

这坚定了我更新的决心

fighting~



python 函数中参数转行 python write函数换行_打开文件

首先放上自己的作业:

README

这是一个模拟商城的程序,程序有两个端口,分别为商家端和用户端。

>>商家端<<

可以上架商品修改已经上架商品的属性,在用户登录的时候可以查看各项属性并购买。

>>用户端<<

首次登录会进行注册,然后需要输入一个余额以及密码,之后可以查看商品价格和其他属性,支付购买后放入购物车。用户信息如购物车内的商品等写入了一个json文件(当时还没讲这个模块,废了很大劲才搞懂),再次登录时验证注册时的密码,并且其他信息如上次购买后的余额,以及购买的商品仍然保存可以查看和继续购买

>>商户端<<



python 函数中参数转行 python write函数换行_python 函数中参数转行_03

>>首次登录<<



python 函数中参数转行 python write函数换行_局部变量_04

>>非首次登录<<



python 函数中参数转行 python write函数换行_打开文件_05

首次写这么长代码的脚本着实很费力,

不过写完之后就很开心,所以就这个无聊的脚本

我都玩了很久hin久hhhhhhhh



python 函数中参数转行 python write函数换行_python 函数中参数转行_06

python 函数中参数转行 python write函数换行_打开文件

命令汇总供查阅

文档处理命令:

.read()                          #读取

.write(‘写入内容’)           #写入

.readlines()              #将其转化为列表,列表的每一个元素为文本的一行

.readline()                      #读取一行

.strip()                            #去空格换行

.flush()                           # 强制刷新

.close()                          #关闭打开的文档

.center(50,'-')                 #格式化工具

.tell()                             #指明句柄指针的位置

.seek()         #让指针回到某个位置,括号里面放值



python 函数中参数转行 python write函数换行_python write函数换行_08

集合命令:

set()                   #将列表转化为集合

.intersection()     #求交集  ‘&’

.union()              #求并集  ‘|’

.difference()       #求差集 ‘-’

.isdisjoint()         #是否有交集

.issubset()          #是否为子集
.issuperset()       #是否为父集

.symmetric_difference()   #求对称集合 ‘^’

.add()              #集合增加一项,括号放元素

.uppdate()          #可以增加多项

.remove()           #删除一项

len()            #求长度,括号中放集合名



python 函数中参数转行 python write函数换行_打开文件

冷知识1:

sys.stdout.write('#')   #系统的一种标准输出方式,不会自动换行,可以用来制作进度条,print()会自动换行

sys.stdout.flush()  

冷知识2:

一行代码太长可以使用‘,\’逗号短斜杠的方式来换行

使用with open(’路径\文件名’)as file:   #执行完会自动关闭文档

冷知识3:

*args 接受位置参数,转化成列表

**args 字典参数



python 函数中参数转行 python write函数换行_打开文件

编码知识:

ASCII 

首先出现,不能存中文,到后来,英文特殊字符均占一个字节,八位

GB2312

存七千多汉字

GB18030 

两万多汉字

GBK 

现在中文使用的编码,各个国家都有自己的GB,导致乱码

Unicode

万国码,存中文字符英文字符都是两个字节,十六位,导致浪费空间

utf-8

英文字符是一个字节,中文三个字节

python的默认编码是utf-8,文件头的作用是说文件编码是什么编码

# -*- coding:utf-8 -*-         #指定编码



python 函数中参数转行 python write函数换行_打开文件

python 函数中参数转行 python write函数换行_python 函数中参数转行_06

下面是一些实例:

集合:

list_1=[1,3,4,5,4,2,3,]

list_1=set(list_1)     #列表转集合

print(list_1,type(list_1))  #查看数据类型

list2=set([1,3,6,])

求交集 &

print(list_1.intersection(list2))

求并集 \

print(list_1.union(list2))

差集 -

print(list_1.difference(list2)) #在集合1但不在集合2

求是否有交集合

print(list_1.isdisjoint(list2))

求对称集合 ^

print(list_1.symmetric_difference(list2))

.issubset(),.issuperset()  #是否为子集,父集

集合增,增加一项

list_1.add(9)

集合增,增加多项

list_1.update([99,45,22])

集合删一项

list_1.remove(5)

求长度

print(len(list_1))



python 函数中参数转行 python write函数换行_打开文件

文档处理:

f=open('文件名','r',encoding='utf-8') #文件句柄,也就是文件的内存对象。以可读(也就是可取用)的模式打开文件

其他模式为:

‘w’    以写的模式打开文件,写的时候要注意源文件可能会被覆盖的问题

‘a’     以追加的模式打开文件

‘a+’    以追加写读的模式打开文件

‘w+’    以写读的模式打开文件

‘r+’     以读写的模式打开文件

f=open('学习笔记','r',encoding='utf-8')

for line in f.readlines(): 

print(line.strip())     #.strip是去空格

输出结果为:将整个文档打印出来

f=open('学习笔记','r',encoding='utf-8')

flag=f.tell()     #指明指针的位置

print(f.readline())

f.seek(flag)    #让指针回到指定的位置

print(f.readline())   #回到了第一行

f=open('学习笔记','r',encoding='utf-8')

flag=f.tell()             #指明指针的位置

print(f.readline())    #只打印一行

f.seek(flag)        #让指针回到指定的位置

print(f.readlines())   #转化为以行为元素的列表



python 函数中参数转行 python write函数换行_打开文件

制作简易进度条的代码:

import sys,time   
for i in range(100):
    sys.stdout.write('#')   #不换行输出
    sys.stdout.flush()       #强制刷新        
    time.sleep(0.1)          #暂停0.1s



python 函数中参数转行 python write函数换行_打开文件

函数:

定义函数

'''def test(x):      # test函数名字,x 参数

    "函数描述"   #文档描述,可以不添加,但是强烈建议添加

    x+=1            #代码块和程序处理逻辑

    return x       #定义返回值

'''

没有返回值的函数,python在调用过程的时候默认返回一个none

参数组的定义,当参数不确定的时候可以使用

*args 接受位置参数,转化成列表

def name(x,*args):

    print(x)

字典参数**kwargs,一级key,value之间用等号连接,接受关键词参数,转化成字典

注意在函数内定义变量叫局部变量,局部变量在函数外不生效,即作用域在函数内,但是也可以强制改,在变量前声明 global。局部变量只限于整数和字符串,复杂一点的对象比如列表,字典,类等等都可以更改

def name(**kwargs):
    print(kwargs)
a=name(name2={'name':1})
print(a)

递归 

函数在自己内部调用自己(最多递归999层)

递归特性:

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

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

3.递归效率不高,递归层数过多会导致栈的溢出



python 函数中参数转行 python write函数换行_python 函数中参数转行_06

END