第二节
第16课时 链式赋值__系列解包赋值
- 链式赋值: a=b=3
- 解包赋值:a,b,c=1,2,3 (分别把1,2,3赋给a,b,c,但等号左右变量数目应该相等),类似解法:a,b=b,a
- 常量:pyton不支持常量
第17课时 内置数据类型
- 常见类型
- 整型
- 浮点型:1.23
- 布尔型:True/False
- 字符串型:
- 整型运算:+ - * / //(整数除法) %(取余数)**(幂)
- divmod函数可同时得到商和余数
第18课时 整数 不同进制 其他类型转换成整数
- 进制:十/二/八/十六,不同进制可以进行位运算
- 0b/0B, 二进制,0,1
- 0o/0O,八进制,0 1 2 3 4 5 6 7
- 0x/0X,十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f
- Int()转换
- int(2.3) >>>2
- int("1234") >>>1234
- int("True")>>>1
- int("1234av")>>>报错
- 自动转型:浮点和整数运算自动转换成浮点
- 整数可以有多大?在python3中没有long类型,整数可以无限大
第19课时 浮点数 类型转换/四舍五入 增强型赋值运算符
- 浮点数,成为float,用科学计数法表示和存储,比如3.14表示成314E-2或314e-2
- 类型转换,类似于int(),可以用float()转换。注意round()可以返回四舍五入的值
- 增强型赋值运算符
a+=1: a=a+1 除此之外还有 -=;*=;/=;//=;**=;%=
第20课时 时间表示_unix时间点_毫秒微秒_time模块
- 从1970年1月1日00:00:00开始计时,以毫秒(1/1000秒)计算,1970年这个时刻是unix时间点
- python中可以time.time()获得当前时刻(记得先import time模块),整数秒表示,浮点数表示微妙
- 获得秒 b=int(time.time())
- totalMinute=b//60
第21课时 定义多点坐标_绘出折现图_计算两点距离
- 输入需要用的模块:import turtle import math
- 解包赋值定义四个点:x1,y1=1,2;
- 绘制折线 turtle.penup();turtle.goto
- 计算起点终点距离 distance=math.sqrt((x1-x4)**2+(y1-y4)**2)
- 标出起点终点距离:turtle.write(distance)
第22课时 布尔值
- python 3将True和False设置为关键词,但本质上还是值 1和0
- 比较运算符,返回1 表示比较结果为真,否则为假
- == 等于
- !=不等于
- > < >= <=
-
逻辑运算符
运算符 | 格式 |
|
or | x or y | 若x为true,不计算y,直接返回x 若x为false,返回y |
and | x and y | x为true,返回y x为false,不计算y,直接返回false |
not | not x |
第23课时 同一运算符 整数缓存
- 同一运算符:is is和==区别,is比较的是两个变量引用的对象的地址是否一致,而==比较的是值是否相等
- 整数缓存 由于python对于【-5,256】会放入缓存器中范围使用,所以在这个范围内的对象引用是一样的;但pycharm或者保存文件后执行在【-5,1000】是一样的,因为解释器做了优化
- is运算符比==效率高
第24课时 字符串_unicode字符集_三种创建字符串方式
- 定义:字符序列,字符串不可变,python不支持单字符,也是作为字符串使用
- 编码:支持unicode来表示字符,可以将字符和数字对应起来;ord()可以找到字符串内置编码
- 创建:(1)用双引号和单引号创建字符串,a="sxt"
- (1)查字符串长短len(),允许空字符串存在
第25课时 转义字符_转义字符_字符串拼接
- 了一些字母前加"\"来表示常见的那些不能显示的unicode字符
- 常见的转义字符\n
- 字符串拼接:“+”来表示。两边字符串则为拼接,两边数字则为加号,两边类型不同报错
- 字符串赋值:a="sxt"*3 输出sxtsxtsxt
- 不换行打印,之前print()默认打印结束是换行符,print("sxt",end=**)可以不换行打印
- 从控制台读取字符串:myname=input(""请输入名字")
第26课时 str()实现数字转型字符串-[]提取字符
-
a[]可以正向搜索字符串a,左侧第一个的偏移量是0,依次是1,直到len(str)
-
[]反向搜索,右侧第一个偏移量是0,依次是-1,直到-len(str)
-
字符串不可更改,但可以用 a=a.replace('c','高'),生成一个新字符串a,把原a里c替代为高字
-
str(5.20)==>'5.20'
第27课时 字符串切片 slice操作
[a:b:c]可以实现切片功能(a表示起始变量,b表示中止变量,c表示步长,注意a,b包头不包尾),常见操作和功能如下:
正向操作如下
负向操作如下:
两个课堂小作业:
1.将“to be or not to be ”倒序输出
2.将“sxtsxtsxt”字符串中所有的s输出
第28课时字符串_split()分割_join()合并_join()效率测试
- split(),基于指定的分隔符将字符串分割成多个字符串,并存储到列表中,如果没有指定,则默认空白字符(换行/空格/制表
- a="to be or not to be"
- a.split(''be'')
- ['to','or not to','']
- joint()把一个列表中的字符串拼接起来,用法跟+类似,但是效率更高.
- join()和+运行效率的测试
import time
time01=time.time()#起始时刻
a=""
for i in range(1000000):#循环后面要加冒号
a += "sxt"#字符型运算增强赋值,每一个循环给a加sxt
time02=time.time()
print("运算时间:"+str(time02-time01))#记得time02-time01是一个数值型,无法直接和字符型进行运算
b=""
time03=time.time()
li=[]#定义一个列表
for i in range(1000000):#不要忘了in
li.append("sxt")
b="".join(li)#jion容易写错成jiont
time04=time.time()
print("运算时间:"+str(time04-time03))
第29课时 字符串常用方法
- 常用查找方法
面对这样要给字符串的常见查找方法:a='''我是高淇,今年 18 岁了,我在北京尚学堂科技上班。我的儿子叫高洛希,他 6 岁了。我 是一个编程教育的普及者,希望影响 6000 万学习编程的中国人。我儿子现在也开始学习编 程,希望他 18 岁的时候可以超过我'''
- 通过 strip()去除字符串首尾指定信息。通过 lstrip()去除字符串左边指定信息, rstrip()去除字符串右边指定信息。
- 大小写转换的用法,对于变量:a = "gaoqi love programming, love SXT"可以用以下方法转化大小写
- 格式排版 center(),lijust(),rjust()
>>> a="SXT"
>>> a.center(10,"*") '***SXT****'
>>> a.center(10) ' SXT '
>>> a.ljust(10,"*") 'SXT*******'
- 其他方法
1.isalnum() 是否为字母或数字 2. isalpha() 检测字符串是否只由字母组成(含汉字)。 3. isdigit() 检测字符串是否只由数字组成。 4. isspace() 检测是否为空白符 5. isupper() 是否为大写字母 6. islower() 是否为小写字母
第30课时 字符串驻留机制和字符串比较
- 字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。 Python 支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母 和数字)会启用字符串驻留机制驻留机制。检验实验:
- 字符串比较和同一性
可以直接用==或者!=对字符串的值进行比较,用is/not is对引用对象是否是同一个对象,即引用地址是否相等
- 成员操作字符 in/not in看某个字符串是否存在于字符串中
第31课时字符串的格式化
- 通过格式化字符串的函数 str.format(),可以实现字符串格式化的功能。
- 注意,定义字符串的{}中的字符串,可以被str.format()函数的参数替代,示例如下:
- 字符串的填充和对齐
^、分别是居中、左对齐、右对齐,后面带宽度 :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。也就是说:*>8构成了一个完整的填充格式,:代表填充,*代表填充的字符,>替代字符所处位置(居中,靠左,靠右),8填充的位数(a.format(b)的意思就是用b去替代a里的格式也好,{0}和{1}也好)
- 数字格式化
浮点数通过 f,整数通过 d 进行需要的格式化。依旧是:后表示格式化的格式
>>> a = "我是{0},我的存款有{1:.2f}"
>>> a.format("高淇",3888.234342)
'我是高淇,我的存款有 3888.23'
其他格式化方式: