一、执行代码的2种方式
1、**交互模式:**所见即所得,输入一行代码可以一行代码的执行结果
2、**文件模式:*把代码保存在文件中,然后使用绝对路径执行后得到结果
绝对路径:python d:\a.py
例如:C:\Users\sunqianli>python d:/a.py
hello world!
相对路径:cmd先进入到e盘下,python a.py
注意:一般来说:调试代码,在交互模式,代码缩进比较多,建议使用文件模式。
二、各种变量类型
1、整型、小数、字符串、bytes类型
>>> a=1
>>> b=1.22
>>> c="好孩子"
>>> d="好孩子".encode("utf-8")
>>> type(d)
<class 'bytes'>
>>> type(c)
<class 'str'>
>>> type(b)
<class 'float'>
>>> type(a)
<class 'int'>
知识点:
str类型:在python的编程中可以直接使用,进行各种运算。不可以用在网络传输。python的内置变量类型,仅在python里面有效。
bytes类型:用于网络传输中使用。网络传输公共数据的一种类型。在python环境中是不能进行字符串直接操作的,必须转换为str类型,才可以进行字符串的各种操作。
2、bytes类型的转换
>>> f=b"abc"#字母和数字这样写没有问题
>>> type(f)
<class 'bytes'>
>>> g=b"但是"
File "<stdin>", line 1
SyntaxError: bytes can only contain ASCII literal characters.
>>> g="新年好呀".encode("utf-8")
>>> type(g)
<class 'bytes'>
3、ord()函数和chr()函数
>>> ord("A")
65
>>> ord("a")
97
>>> ord("Z")
90
>>> ord("z")
122
>>> chr(65)
'A'
>>> chr(97)
'a'
>>> chr(122)
'z'
>>> ord("光")
20809
>>> ord("孙千丽")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: ord() expected a character, but string of length 3 found
>>> ord("孙")
23385
>>> ord("千")#是unicode码
21315
4、encode和decode
知识点:
ascii:0-127 纯英文
unicode:和ascii类似,它包含全世界目前官方认可的所有字符(只能用于内存);不是用于存储到磁盘的。对应的是str类型。
简体:
GBK:数字的key---->汉字 (字符集的字数要比gb2312多)
GB2312: 数字的key---->汉字 (没有生僻字)
繁体:
Big5:台湾和香港
utf-8
utf-16
utf-32
以上几种都是用于存储到磁盘的。如果是计算内存中的字符,想存储到本地磁盘encode(“xxx编码”)
>>> s="孙千丽"
>>> type(s)
<class 'str'>
5、列表
知识点:
**列表:**可以存储多个对象,里面存储的内容,均可以做增删改查
>>> l=[]
>>> l.append(1)
>>> l.append("2")
>>> l.append([1,2])
>>> l
[1, '2', [1, 2]]
>>> type(l)
<class 'list'>
所有python的对象存储,均是用class(类)来进行实例化存储的。
6、元组
>>> t=(1)
>>> t
1
>>> type(t)
<class 'int'>
>>> t=(1,)
>>> type(t)
<class 'tuple'>
>>> l
[1, 2, [1, 2]]
>>> l[0]=100
>>> l
[100, 2, [1, 2]]
>>> t[0]=100
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
**知识点:**列表与元组的区别:列表的元素可以修改,元组的元素不可以修改。
7、字典
>>> d={"1":"abc"}
>>> type(d)
<class 'dict'>
>>> d={[1]:"abc"}#不能用可变类型作为key
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> d={1:"abc",1:"def"}#key不能重复,重复后面的会将前面的覆盖了
>>> d
{1: 'def'}
知识点:
可变类型:list dict set
不可变的类型:整数、小数、字符串和元组-------------可以作为字典的key
8、set()函数去重
>>> s=set("abc")#集合,一般用来排重,没有顺序之说
>>> s
{'a', 'c', 'b'}
>>> type(s)
<class 'set'>
>>> s=set("abcabcabc")
>>> s
{'a', 'c', 'b'}
>>> s=set([1,2,3,4,2,1])
>>> s
{1, 2, 3, 4}
>>>
>>> s=set({1:2,3:4,5:6}.values())
>>> s
{2, 4, 6}
9、Python文本保存的编码
s=“光荣之路” #类型:str–unicode类型
s=s.encode(“utf-8”) #bytes类型,可以用于网络传输
其他机器收到了内容,怎么变成str类型?
s.decode(“utf-8”) #从bytes 变为了str类型。
encode:编码 str—>bytes
decode:解码 bytes----->str
为了网络传输,为了将str类型转化为其他的类型进行网络传输。
>>> s="孙千丽"
>>> type(s)
<class 'str'>
>>> s=s.encode("utf-8")
>>> s
b'\xe5\xad\x99\xe5\x8d\x83\xe4\xb8\xbd'
>>> type(s)
<class 'bytes'>
>>> s.decode("utf-8")
'孙千丽'
>>> s.decode("gbk")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbd in position 8: incomplete
注意:
1、你的程序使用文件模式执行,建议:不管里面有没有中文,都存储成utf-8编码格式。
2、你的程序如果使用gbk编码保存,则文件的第一行写上#encoding=gbk,就可以了。
10、%s占位符
>>> s="孙千丽"
>>> print("%s新年好呀"%s)
孙千丽新年好呀
>>> print("%s美好的一天,%s"%(s,"要开心呀"))#格式化输出
孙千丽美好的一天,要开心呀
11、input()从键盘输入–注意类型是字符串类型要记得转化(经常容易出错)
>>> s=input("你是谁:")
你是谁:小可爱
>>> s=int(input("请输入数字:"))
请输入数字:1
>>> s=s+1
>>> s
2