可变字符串
在pyhton中,字符串不可变。可以使用io.StringIO对象或array模块原地修改字符串。
import io
s='hello,sxt'
sio=io.StringIO(s)
print(sio.getvalue())
sio.seek(7)
sio.write('g')
print(sio.getvalue())
可变字符串
在pyhton中,字符串不可变。可以使用io.StringIO对象或array模块原地修改字符串。
import io
s='hello,sxt'
sio=io.StringIO(s)
print(sio.getvalue())
sio.seek(7)
sio.write('g')
print(sio.getvalue())
字符串常用方法汇总
常用查找方法
len(a) 计算字符串长度
a.startswith('字符串') 是不是以指定字符串开头
a.endswith('字符串') 是不是以指定字符串结尾
a.find('字符串') 第一次出现指定字符串的位置
a.rfind('字符串') 最后一次出现指定字符串的位置
a.count('字符串') 指定字符串出现了几次
a.isalnum() 判断所有字符串全是字母或数字
a.isalpha() 判断所有字符串全是字母(含汉字)
去除首尾信息
strip() 去除首尾指定信息
lstrip() 去除首指定信息
rstrip() 去除尾指定信息
大小写转换
a.capitalize() 产生新的字符串,首字母大写
a.title() 产生新的字符串,每个单词都首字母大写
a.upper() 产生新的字符串,所有字符全转成大写
a.lower() 产生新的字符串,所有字符全转成小写
a.swapcase() 产生新的字符串,所有字母大小写转换
格式排版
a.center(10,'*') 居中
a.ljust(10,'*') 左对齐
a.rjust(10,'*') 右对齐
字符串驻留机制和字符串比较
字符串驻留:仅保存一份相同且不可变字符串的方法,不同值被存放在字符串驻留池中。(仅包含下划线、字母和数字会启用字符串驻留机制)
字符串比较和同一性
可以用==,!=进行字符串比较
使用is/ not is,判断两个对象是否同一个对象,比较的是对象的地址
成员操作符
in /not in 关键字,判断mou'g
按位或:表示取最大(每位)
按位与:最小
按位异:每位相同为0;相异为1
str()实现数字转型字符串
使用[]提取字符
正向搜索:最左侧第一个字符,偏移量(索引)是0,第二个偏移量1,以此类推,直到len(str)-1为止。
反向搜索:最右侧第一个字符,偏移量(索引)是-1,倒数第二个偏移量-2,以此类推,直到-len(str)为止。
a='abcd'
print(a[0])
print(a[-1])
replace()实现字符串替换
字符串不可变,创新了新字符串
a=a.replace("c","高")
转义字符
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引导
\" 双引导
\b 退格(Backspace)
\n 换行
\t 横向制表符
\r 回车
字符串拼接
1.用+拼接
2.多个字符串直接放到一起
字符串复制
用*实现字符串复制
不换行打印
前面调用print时,会自动打印一个换行符。
有时不想换行时,可以通过end="任意字符串"实现末尾添加任何内容。
print("sxt",end=' ')
print("sxt",end='\t')
从控制台读取字符串
input()
同一运算符
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。
is 判断两个标识符是不是引用同一个对象
is not 判断两个标识符是不是引用不同对象
is与 == 区别:
is用于判断两个变量引用对象是否为同一个,既比较对象的地址
== 用于判断引用变量引用对象的值是否相等,默认调用对象的_eq_()方法
整数缓存问题
python仅对比较小的整数对象进行缓存,命令行中范围【-5,256】
Pycharm或保存为文件时,范围【-5,任何正整数】
is运算符比==效率高,在变量和None进行比较时,应该使用is
布尔值
True和False本质还是1和0,甚至可以和数字相加。
比较运算符
所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。
== 等于 比较对象的值是否相等
!=不等于 比较对象的值是否不相等
逻辑运算符
1. or 或
2. and 与
3. not 非
【操作】定义多点坐标_绘出折线_并计算起始点和终点距离
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)
dis=math.sqrt((x1-x4)**2+(y1-y4)**2)
时间的表示
计算机时间的表示是从“1970年1月1日 00:00:00”开始,以毫秒(1/1000秒)进行计算。我们把1970年这个时刻成为“unix时间点”。
python中可以通过time.time()获得当前时刻,返回值以秒为单位,带微秒精度的浮点值。
import time
time.time()
浮点数
浮点数,称为float
浮点数用科学计数法来表示,比如3.14表示成:314e-2
类型转化和四舍五入
1.类似于int(),float()
2.round(value)可以返回四舍五入的值 注:但不会改变原有值,产生新的值
增强型赋值运算符
运算符+、-、*、/、//、**和%和赋值符=结合可以构成“增强型赋值运算符”
a=a+1等价于a+=1
整数
-0b 或 0B,二进制 0 1
-0o 或 0O,八进制0 1 2 3 4 5 6 7
-0x 或 0X, 十六进制0-9 a b c d e f
这三种进制可以非常方便的进行“位运算”操作。
【操作】测试不同进制
0b101
0o10
0xff
使用int()实现类型转换:
1.浮点数舍去小数部分
2.布尔值Ture转为1 False转为0
3.字符串(整数可以转化,其他不行)
自动转型:整数和浮点数混合运算,结果自动转型浮点数
整数可以多大?
googol=10**100
Python3 int可以存储任意大小的整数,适合科学运算的特点
最基本内置数据类型介绍(type)
1.整数
2.浮点型 小数
3.布尔型 True、False
4.字符串型
/浮点数除法 //整数除法 %模(取余) **幂
除数为0,会报错
divmod(a,b)得到商和余数
链式赋值
用于同一个对象赋值给多个变量
x=y=123
系列解包赋值
系列数据赋值给对应相同个数的变量(个数保持一致)
a,b,c=4,5,6
系列解包赋值实现变量互换
a,b=1,2
a,b=b,a
print(a,b)
常量
python不支持常量,通过逻辑上不对常量的值进行修改。命名全大写
https://blog.csdn.net/chenjinhong1990/article/details/116514777
删除变量 del a
id() 标识,显示地址
type() 类型
print() 值
\行连接符
a='sxtsxtsxtsxt'
a[0:15:3]
#首先,左闭右开原则,
#其次,右边为偏移-1
#选值的时候,第一个包含在内,从第二个开始计数
系列解包赋值