Python 基础笔记 day-2

本文详细介绍了Python的基础内置数据类型,包括整数、浮点数、布尔值和字符串。讲解了数字的运算、进制转换、浮点数的四舍五入,以及整数缓存问题。在字符串部分,探讨了Unicode编码、字符串创建、访问、替换、拼接、复制、转换等操作,并介绍了字符串的切片、分割、合并以及格式化方法。此外,还涉及到了布尔值的比较运算和逻辑运算,以及时间表示和时间模块的使用。

基本内置数据类型和运算符

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

整数和浮点数

数字和基本运算符

基本运算符
F : divmod()函数同时返回商和余数

整数

进制

常用进制:十进制、二进制(0b 或 0B)、十六进制(0x 或 0X)、八进制(0o 或 0O)
用进制可以方便的进行"位运算"操作

取整

使用int()实现类型转换

  1. 浮点数直接舍去小数部分
  2. 布尔值True ->1 False->0
    自动转型
    整数和浮点数混合运算时,表达式结果自动转换为浮点数

浮点数

float 常用科学计数法表示

类型转换和四舍五入

使用ifloat()实现类型转换
自动转型
整数和浮点数混合运算时,表达式结果自动转换为浮点数
四舍五入round()
round(value)可以返回四舍五入的值
注:但不会改变原有值,而是产生新的值

增强型赋值运算符

增强型赋值运算符

时间的表示 time模块

以毫秒进行运算
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())
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值