Python基础第三课

上节课讲的内容

    变量、输入输出、选择语句
比较运算符:
    >,<,>=,<=,!=,==...
逻辑运算符:
    and or not 
演示08_answer.py 石头剪刀布人机大战
 
 

字符编码:

    ASCII、GB2312、GBK、UNICODE------> utf-8
ord('A')=65
chr(66)='B'
 
# -*- coding: utf-8 -*- 告诉别人,你的Python文件是UTF-8编码
 

Python的字符编码问题总结:

使用说明

1.str就是str类型,Python内部用UTF-8编
2.bytes(str,encoding="UTF-8")可以把str转化为UTF8编码的字节流
3.str.encode("gbk") 吧str转化为gbk编码的二进制串
4.byte.decode("UTF-8") 把二进制串按照UTF-8编码解析成字符串
5.Python默认写入文件是gbk编码,想要修改可以打开文件时用UTF-8
例:
把字符串转化为UTF-8编码的二进制串
bytes(str(a), encoding="UTF-8")
把字符串转化为gbk编码的二进制串
str(a).encode("gbk")
 
把GBK编码的二进制串用GBk编码方式解码成字符串
str(a).encode("gbk").decode("GBK")
用默认(GBK)方式打开文件并进行写操作(Python会先gbk打开文件,给写入字符串编码成gbk,再写入文件)
with open("b.txt" , "w") as f:
f.write(str(a))
 
用UTF-8打开文件并进行写入操作(Python会先UTF-8打开文件,给写入字符串编码成UTF-8,再写入文件)
with open("b.txt" , "w", encoding="UTF-8") as f:
f.write(str(a))
 

典型错误:

str(a).decode("UTF-8")
错误1:str类型不能decode,bytes不能encode
print(str(a).encode("gbk").decode("UTF-8"))
错误2:用gbk编码成二进制串,再用UTF-8解码不了
 

重要数据结构:

list 列表

    Python 内置的一种数据类型是列表:list。
    list 是一种有序的集合(非数学上的集合),可以随时添加和删除其中的元素。
 
    classmate=['小明', '小张']
    classmate[0]='小明' ----------->下标从0开始,不可以下标越界
    classmate[1]='小张'
    增加:append(值) ------>加到结尾
    插入:insert(位置,值)------->加到指定位置
    删除 pop(位置)
    修改:直接赋值
    len(列表名) = 列表元素个数
 
    更多操作,11.py
 

tuple 元组

    类似列表,但是不可以修改
    classmate=('小明', '小张')
 

dict 字典类型

    采用hash方式存储,从名字快速对应到内容(so 名字是唯一的),速度快,空间换时间 (what is hash? 127.0.0.1/my/test.php)
    d={'aa':95 , 'bbb':80 ,'ccccc':100}
    
    查询:通过名字找到对应的值
        d['aa']
    增加:去一个名字,然后赋值就可以。
        d['dddd'] = 120
        d['aa']=150 --------->会覆盖原来的值
    修改:直接赋值
        d['aa']=150   
    删除:pop
        d.pop('aa')
        d.clear()全部删除
 

set 集合 (数学上的集合,不可以有重复的值)

    由list创建
    s=set([1,2,3,4,5]) = {1,2,3,4,5}
    s=set([1,2,2,4]) ={1,2,4}
    s.add()
    s.remove()
    两个set可以做数学意义上的交集、并集等操作
    & | 

程序控制结构

循环结构:

    for ... in ...:
        ...
 
    example:
        classmate=['asd','asdasd']
        for i in classmate: -------->给每一个list类型的值取出来放到i
            print(i , end=" ")
 
        for i in range(len(classmate)):------->len取长度,classmate的个数,range(n) 相当于生成[0,n)的整数
            print(classmate[i])
        
        list(range(10)) ------->给rang转化为list类型
 
    while ...:
        ....
        ...
 
    i=10
    while(i!=0):
        print(i)
        i=i-1
 
每一项演示10.py
用户登录、添加、查看 09.py
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/MarmaladeCat/p/ab26ce497008cff99373edd207d0e0a1.html