Day2
基本内置数据类型和运算符
python中最基础的内置数据结构:1.整数 2.浮点数 3.布尔型 4.字符串型
整数和浮点数
数字和基本运算符

F : divmod()函数同时返回商和余数
整数
进制
常用进制:十进制、二进制(0b 或 0B)、十六进制(0x 或 0X)、八进制(0o 或 0O)
用进制可以方便的进行"位运算"操作
取整
使用int()实现类型转换
- 浮点数直接舍去小数部分
- 布尔值True ->1 False->0
自动转型
整数和浮点数混合运算时,表达式结果自动转换为浮点数
浮点数
float 常用科学计数法表示
类型转换和四舍五入
使用ifloat()实现类型转换
自动转型
整数和浮点数混合运算时,表达式结果自动转换为浮点数
四舍五入round()
round(value)可以返回四舍五入的值
注:但不会改变原有值,而是产生新的值
增强型赋值运算符

时间的表示 time模块
以毫秒进行运算
time.time()返回当前的时刻,返回值以秒为单位

练习-多点坐标_绘出折线图_计算两点距离
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)
print('dis:',dis)
#
turtle.done()
布尔值 True False
比较运算符


逻辑运算符

同一运算符(比较地址)
同一运算符用于比较两个对象的储存单元,实际比较的是对象的地址

‘is’ 和 ’==‘
is:判断两个变量的引用对象是否为用一个,比较对象的地址
= =:用于判断引用变量引用对象的值是否相等,默认调用对象的 eq()方法
整数缓存问题
Python仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来,而并非是所有整数对象。需要注意的是,这仅仅是在命令行中执行,而在Pycharm或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分 优化(范围是[-5,任意正整数])。
a=1000
b=1000
a==b => True
a is b => False
c=100
d=100
c==d => True
c is d => True
字符串

引子
什么是字符串
字符串的本质是:字符序列
Python 的字符串是不可变的,我们无法对原字符串做任何修改。但,可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。
Unicode编码
Python3 直接支持 Unicode,可以表示世界上任何书面语言的字符
使用内置函数 **ord()**可以把字符转换成对应的 Unicode 码;
使用内置函数 **chr()**可以把十进制数字转换成对应的字符
字符串基础操作
字符串创建
单双引号
我们可以通过单引号或双引号创建字符串。例如:a=’abc’; b=”sxt
转义字符 \
使用“+特殊字符”,实现某些难以用字符表示的效果

多行字符串创建’’’
连续三个单引号或三个双引号,可以帮助我们创建多行字符串。例如:
str = '''
asd
asd
'''
print(str)
空字符串
Python 允许空字符串的存在,不包含任何字符且长度为 0
str = ''
字符串访问
len()函数
len()用于计算字符串含有多少字符
str = 'abcdefg'
length = len(str)
print(length)
使用[]提取字符
字符串的本质就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量,可以提取该位置的单个字符
a = 'abcdefghijklmnopqrstuvwxyz'
a[0]
正向搜索
最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推
a = 'abcdefghijklmnopqrstuvwxyz'
a[3]
反向搜索
最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2
a = 'abcdefghijklmnopqrstuvwxyz'
a[-1]
替换、拼接、复制、转换
replace()字符串替换
字符串不可改变。但是,我们确实有时候需要替换某些字符。这时,只能通过创建新的字符串来实现。(使用replace)
a = 'abcdefghijklmnopqrstuvwxyz'
a = a.replace('c','高')
## a:'ab 高 defghijklmnopqrstuvwxyz'

字符串拼接
‘aa’+‘bb’ ->‘aabb’
‘aa’ ‘bb’ ->‘aabb’
字符串复制
用*实现
a = 'str'*3
print(a)
str() 函数:数字->字符串
str()可以帮助我们将其他数据类型转换为字符串。例如
str(5.20)
str(3.14e2)
str(True)
字符串 切片、分割、合并
切片slice操作
[start,end,step]
标准格式,如:
str = 'abcdefg'
str1 = str[0:4:2]
print(str1)
包前不包后[)
正负索引


即使超出索引,也不会报错
分割操作split()
split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)
** 默认空格**
合并操作join()
join()的作用和 split()作用刚好相反,用于将一系列子字符串连接起来
其它
不换行打印
我们前面调用 print 时,会自动打印一个换行符。(即默认以‘’结尾)
有时,我们不想换行,不想自动添加换行符。我们可以自己通过参数 end = “任意字符串”
print('abc',end = '')
从控制台读取字符串
使用 input()从控制台读取键盘输入的内容
str = input('please input string')
字符串驻留机制与比较
驻留机制
符合规则的字符串->驻留
仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。Python 支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母和数字)会启用字符串驻留机制驻留机制。
字符串比较
我们可以直接使用==,!=对字符串进行比较
成员运算符
in /not in 关键字,判断某个字符(子字符串)是否存在于字符串中。
字符串常用方法
查找


去除首位信息
我们可以通过 strip()去除字符串首尾指定信息。通过 lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息
s1 = ' \n\taabbccaabbcca'
s1.strip(' a\n\t')#不管顺序,只要是我指定的就拿掉,直到第一个没有指定的元素为止
大小写转换


排版

其它

format格式化
str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序
print('{},{},{}'.format(123,'asd',4.24))
b = "名字是:{0},年龄是{1}。{0}是个好小伙"
b.format("高淇",18)
print(b)
填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
数字格式化
浮点数通过 f,整数通过 d 进行需要的格式化。
a = 'I am {0}, I have {1:2f}'
a.format('Fr',30.5)
print(a)

可变字符串
在 Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用 io.StringIO对象或 array 模块。
import io
s = 'hello fr!'
sio = io.StringIO(s)
print(sio.getvalue())
sio.seek(7)
sio.write('g')
print(sio.getvalue())
本文详细介绍了Python的基础内置数据类型,包括整数、浮点数、布尔值和字符串。讲解了数字的运算、进制转换、浮点数的四舍五入,以及整数缓存问题。在字符串部分,探讨了Unicode编码、字符串创建、访问、替换、拼接、复制、转换等操作,并介绍了字符串的切片、分割、合并以及格式化方法。此外,还涉及到了布尔值的比较运算和逻辑运算,以及时间表示和时间模块的使用。
1264

被折叠的 条评论
为什么被折叠?



