1、变量
1.1 变量的定义:变化的量,指事物的状态,定义变量就是将一个值赋值给一个变量名
1.2 变量的命名规则:必须用字母、数字、下划线组成、不能以数字开头、不能使用关键字、命名最好由意义
1.3 命名方式:驼峰体(YourName)、纯小写加下划线(name_of_you)
*python中约定俗成将字母全部大写的名字成为常量,一般程序中不更改常量
1.4 变量的交换
a = 10
b = 20
a,b = b,a
print(a,b) # 20 10
1.5 变量与内存地址:在内存中会划出两部分空间,一部分存变量名,一部分存变量的值,它们之间通过内存地址联系起来,也可以看成一种映射关系,当一个变量名没有任何变量值直接或间接的关联时,python解释器的垃圾回收机制会把这个变量名回收,从而将内存空间释放出来。
2、编码知识
2.1 ASCII码:是最早的编码表,里面只包含英文字母、数字,不能满足后来的使用需求。
2.2 Unicode码:是ASCII的改良版,可以识别多个国家的语言,不过占据内存太大,有内存写入硬盘时花费时间更长
2.3 UTF-8码:英文字符占1B,中文字符一般占3B,某些生僻字可能会占用4B,是Unicode的改良版,既能识别多个国家的语言,也能节约内存空间(所以现在一般内存里面用unicode存储,硬盘里面用UTF-8存储
2.4 GBK码:是中国的编码表,只有中文、英文和数字的对应关系,一般在有外语的时候不使用,否则容易造成乱码。
*用type()函数可以获取数据的类型,用id()可以获取数据的内存地址
3、数据类型
数字类型:包含整型(int)、浮点型(float)
整型int:正整数、负整数、0
二进制、八进制、十六进制都有整型的数据类型
浮点型(float):带小数点的数字
布尔型:由两个数值组成,Flase和True,通常用于判断(空值和空列表为Flase)
复数:由实数加虚数组成,复数的前半部分为实数,后半部分为虚数
字符串(str):用引号引起来的就是字符串,可以用单引号、双引号、三引号
在字符串中,三个单引号和双引号可以用来给段落换行
元字符串r:在字符串前加r,代表不转义转移字符,按照原来的数据显示出来。
转义字符:/n(换行符)、/r/n(换行符)、/t(制表符、空格)、/r(将/r后面的字符直接拉到当前行行首的位置,之前的字符都被覆盖)
4、字符串格式化:
4.1 用%来格式化
此种顺序传值方法要求变量严格按照位置来传,不能混淆
print("%s 经常吹牛,%s经常不吃饭" %("张三",李四)
用字典来传值,可以不必按照变量的位置来以此传值
print("%(name)s经常上网,年龄只有%s(age)"%{"age":"12","name":"张三"})
4.2 用.format来格式化,这个是字符串的内置方法,在性能和灵活方面都比较好,比较推荐
根据位置依次传值,用{}来占位
s1 = "我是{},我会{}".format("超人","飞")
print(s1) #我是超人,我会飞
按照索引来传值,不再局限于位置顺序
s1 = "先{0},再{1}".format("炒菜","煮饭")
print(s1) # 先炒菜,再煮饭
用关键字来传参
s1 = ("讨厌{hate},但是可以{like},喜乐参半".format(hate="上班",like="赚钱"))
print(s1) # 讨厌上班,但是可以赚钱,喜乐参半
用容器类型来传参(用列表或者元祖)
s1 = "{0[0]}和{0[2]}一起去玩,{0[0]}喜欢玩{1[1]},{0[0]}喜欢玩{1[2]}".format(["张三","李四","王五"],["下棋","看书","打游戏"]) print(s1) # 张三和王五一起去玩,张三喜欢玩看书,张三喜欢玩打游戏 s2 = "{0[0]}和{0[2]}一起去玩,{0[0]}喜欢玩{1[1]},{0[0]}喜欢玩{1[2]}".format(("张三","李四","王五"),["下棋","看书","打游戏"]) print(s2) # 张三和王五一起去玩,张三喜欢玩看书,张三喜欢玩打游戏 # 方法二: s3 = "{name[0]}和{name[2]}一起去玩,{name[0]}喜欢玩{hobby[1]},{name[0]}喜欢玩{hobby[2]}".format(name = ("张三","李四","王五"),hobby = ["下棋","看书","打游戏"]) print(s3) # 张三和王五一起去玩,张三喜欢玩看书,张三喜欢玩打游戏 # 方法三: s4 = "{name[name1]}和{name[name2]}一起去玩,{name[name1]}喜欢玩{hobby[hobby1]},{name[name1]}喜欢玩{hobby[hobby2]}".format(name = {"name1":"张三","name2":"王五"},hobby = {"hobby1":"看书","hobby2":"打游戏"}) print(s4) # 张三和王五一起去玩,张三喜欢玩看书,张三喜欢玩打游戏
4.3 format填充符号的使用
# 填充符号的使用: str1 = "{time:*^10}在池塘里{things:~>15},这是一件多么{mood:@<20}的事".format(time="summer",things="swimming",mood="wonderful") print(str1) # **summer**在池塘里~~~~~~~swimming,这是一件多么wonderful@@@@@@@@@@@的事 # 整型占位符 :d str2 = "我有{:d}个苹果".format(7) print(str2) # 我有7个苹果 str3 = "我有{:2d}个苹果".format(7) print(str3) # 我有 7个苹果 占两位,默认居右 str4 = "我有{:<2d}个苹果".format(7) print(str4) # 我有7 个苹果 占两位,居左显示 # 浮点型占位符 :f 使用四舍五入,默认保留六位小数 str5 = "我有{:f}元".format(9.9999999) print(str5) # 我有10.000000元 str6 = "我有{:.2f}元".format(9.9999999) print(str6) # 我有10.00元 # 字符串占位符 :s str7 = "我是{:s}字符串".format("一个") print(str7) # 我是一个字符串 str8 = "{:s}".format(str7) print(str8) # 我是一个字符串 可以直接引用别的字符串 # 金钱占位符 :, str9 = "金钱占位符传数字{:,}".format(68932393) print(str9) # 金钱占位符传数字68,932,393
5、列表list:用[]表示,可以放各种数据,字符串、整型、浮点型、字典、列表、元组都能放
list1 = ["字符串",("我是","元祖"),{"我是","集合"},{"我是":"字典"},123]
list1[1] = "元祖"
print(list1) # ['字符串', '元祖', {'我是', '集合'}, {'我是': '字典'}, 123]
列表可以按照索引来取值,从左往右,索引从0开始递增,从右往左,索引从-1开始以此减少
*使用len()函数可以获取列表的长度
6、元组tuple:用()表示,不可更改的数据类型
t=(22,33,44)
*若元组中包含有容器类型的数据类型,则容器类的数据类型可以更改