字符串驻留机制和字符串比较:
字符串驻留:对于符合标识符规则的字符串(仅包括下划线( _ )、字母和数字时,会启用字符串驻留机制;但是在pycharm里面,只要字符串长得一样,就都符合驻留机制
字符串比较和同一性:
==是对字符串进行比较,字符串包括的字符是否相同;
但is 或 not is 判断的时两个对象是否是同一个对象
成员操作符:
in、not in是关键词,判断某个字符是否在字符串中
字符串驻留机制和字符串比较:
字符串驻留:对于符合标识符规则的字符串(仅包括下划线( _ )、字母和数字时,会启用字符串驻留机制;但是在pycharm里面,只要字符串长得一样,就都符合驻留机制
字符串比较和同一性:
==是对字符串进行比较,字符串包括的字符是否相同;
但is 或 not is 判断的时两个对象是否是同一个对象
成员操作符:
in、not in是关键词,判断某个字符是否在字符串中
1.split()分割和join()
split()可以基于指定分隔符字符串分割成多个字字符串
join()将列表中的字符串连接在一起
字符串可以通过+进行拼接,但是每+一次,就会形成一个新的对象,但是列表对象是可变的,生成一个列表直接用join()则只产生一个对象
通过测试来证明,通过列表join时间更快,性能更高
1.字符串切片slice操作:
在切片操作中,当初试偏移量和终止偏移量不在[0, len(str)-1]的范围内,也不会报错,会自动默认为取len(str)-1范围内的数;
1.str()实现数字转型字符串:
2.使用[ ]提取字符:字符串的本质就是字符序列
正向搜索:最左侧第一个字符,偏移量是0,第二个偏移量是1,以此类推,知道len(str)-1为止;
反向搜索:最右侧第一个字符,偏移量是-1.第二个偏移量是-2,以此类推,直到-len(str)为止;
3.replace()实现字符串替换:
a = "abcdefghijklmn"
注:字符串是不可改变的,我们无法通过直接令a[0] = "gao"来改变字符串中第一个位置的内容,但是可以通过replace的方式来改变。在整个过程中,我们创建了新的字符串对象,而不是改变了以前的字符串
转义字符
转义字符的使用:
字符串的拼接:
1.使用加号——'aa' + 'bb';
(1)+两边都是字符串,则是字符串的拼接;
(2)+两边都是数字,则是加法运算;
(3)+两边的类型不同,则会出现异常
2.可以讲多个字符串直接放在一起拼接
字符串的复制:直接用*实现复制
不换行打印:在调用print时,会自动打印一个换行符,如果我们不想换行,则可以通过添加end = “任意字符串”
从控制台读取字符串:
可以通过input() 从控制台读取键盘输入的内容
字符串:
1.字符串基本特点:
(1)程序员打交道最多的是“字符串”,而不是数字,编程中的逻辑思维重要性远远超过数学能力;
(2)字符串的本质是:字符序列;python的字符串是不可变的,我们无法对原字符串做任何修改;
2.字符串的编码:
python3直接支持Unicode编码,Unicode16位可以表示世界上任何书面语言的字符
3.引号创建字符串:通过单引号或双引号创建;字符串里本身有单引号的,外面用双引号,字符串本身有双引号的,外面用单引号;连续三个单引号或三个双引号,可以帮助我们创建多行字符串
4.空字符串:python里面允许空字符串的存在,
同一运算符:
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址
is 与==的区别:
is判断的是两个变量引用对象是否为同一个,即比较对象的地址;
==用于判断引用对象的阿值是否相等
整数缓存的问题:
python会将[-5,256]范围内的整数缓存起来,则在这个范围内数,a = 5 ,b = 5. a is b 为真,默认这两个数的地址相同。而在pycharm里面的范围是[-5,任意正整数]
布尔值:
True =1
False = 0
比较运算符:
1.等于 ==
2.不等于!=
3.大于 >
4.小于 <
5.大于等于 >=
6.小于等于 <=
逻辑运算符:
or: x or y,x为ture,则不计算y,发生短路
and: x and y,x为真,则返回y的值;若x为false,不计算y,直接返回x的值
not: not x,取非
import turtle import math #定义多个点的坐标 x1, y1 = 100, 100 x2, y2 = 100, -100 x3, y3 = -100, -100 x4, y4 = -100, 100 #绘制折线 turtle.penup() turtle.goto(x1, y1) turtle.pendown() turtle.goto(x2, y2) turtle.goto(x3, y3) turtle.goto(x4, y4) #计算起始点和终点的距离 distance = math.sqrt((x1 - x4) ** 2 +(y1 - y4)**2) turtle.write(distance)
时间的表示:
在计算机中时间的表示是从“1970年1月1日 00:00:00”开始,以毫秒进行计算的。1970年这个 时刻称为“unix时间点”
python可以通过time.time()获得当前时刻,返回值以秒为单位;
程序基本结构:
浮点数:称为float,浮点数用科学计数法表示,比如:3.14,可以表示为314E-2或者314e-2。这些数字在内存中也是按照科学计数法存储;float(3)可以把整数型转换为浮点型;float(“3.14”}可以把字符串转化为小数;
整数和浮点数混合运算时,表达式结果自动转型为浮点数;
round()可以返回四舍五入的值。注:不改变原有的值,产生的是新的值;
增强型赋值运算符:
a = a + 1 等价于 a += 1
注:+和=之间不需要加空格
函数操作不可变全局变量,传递全局变量对象地址给栈帧的局部变量,之后改变局部变量会创建新的对象,局部变量对应对象地址变化
程序基本格式:
1、恰当空格,缩进
2、大小写
3、注释
行注释#
段注释'''
import turtle
turtle.width(10)
turtle.color("blue")
turtle.circle(50)
turtle.color("black")
turtle.penup()
turtle.goto(120,0)
turtle.pendown()
turtle.circle(50)
turtle.penup()
turtle.goto(240,0)
turtle.pendown()
turtle.color("red")
turtle.circle(50)
turtle.color("yellow")
turtle.penup()
turtle.goto(60,-50)
turtle.pendown()
turtle.circle(50)
turtle.color("green")
turtle.penup()
turtle.goto(180,-50)
turtle.pendown()
turtle.circle(50)
枚举法
for a in range(0,1001):
循环优化 time.time()
减少最内层循环的计算,尽量往外层放
连接字符串使用str.join(""),不生成新字符串
列表删减放在尾部,不用大量copy数据
1.比较运算符可以连用
2.位操作
左移1位相当于乘2,左移两位相当于乘4
右移1位相当于除2
优先级
1.乘除优先于加减
2.位运算和算术>比较>赋值>逻辑
str.format()
{:*>8}
find() :第一次出现指定字符串的位置
rfind():最后一次出现指定字符串的位置
count():制定字符串出现了几次
isalnum():所有字符全是字母或数字
strip()去除首尾信息
Istrip():去除左边
rstrip():去除右边
a.capitalize() 首字母大写
a.title() 每个单词首字母大写
a.upper() 所有字符大写
a.lower() 所有字符小写
a.swapcase()所有字母大小写转换
center():从两边补齐
ljust():从右边补齐