python基础学习-我的学习总结
1.链式赋值 :其用于同一个对象赋值给个变量。eg,x=Y = 123相当于x=123, y = 123
2. 系列解包赋值,对应相同个数的变量(个数必须保持一致。)a,b,c=4,5,6相当于a=4,b=5,c=6
常量:Python中不支持常量,即没有语法规则限制改变一个常量的值。我们只能约定常量的命名规则以及在程序的逻辑上不对常量的值做出改变。
3. 最基本的数据类型
1、整形 , 2、浮点型, 3、布尔型:True,False, 4、字符串类型
python对数字的操作
+,—,,/(除),//(整数除法),%(取余)7%3=3,**(幂运算)
注:使用divmod()*函数同时得到商和余数:divmod(13,3)=(4,1)
整数
python中除了10进制还有其他三种进制。
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()实现类型转换
1、浮点数会直接舍去小数部分。如:int(9.9)结果是:9
2、布尔值true转为1,false转为0.如:int(Ture)结果是1
3、字符串符合整数格式(浮点数格式不行),否则报错。
自动转型
整数和浮点数混合运算的时候,表达式的结果自动转换称浮点型数据。比如:2+8.0的结果是10.0
在python3中,int可以存储任意大小的整数,long被取消。python3中可以做超大数的计算,而不会造成“整数溢出”。
浮点数
浮点数:float 浮点数用 形式的科学计数法表示。 在内存中按照科学计数法存储
类型转换和四舍五入:
1、类似于int(),我们也可以使用float()将其转换成浮点型数据。
2、整数和浮点型数据混合运算的时候,表达式结果自动转换为浮点数。
3、round(value)可以返回四舍五入的值。
注意:但不会改变原有值,而是产生新的值
增强型赋值运算符运算符+,-,*,/,//.**和赋值运算符=结合可以构成增强型赋值运算符。
注意+=中间不可以添加空格。
布尔值 :True,False
时间的表示:python中可以通过time.time()获得当前的时刻,返回的值是以秒为单位,带微秒(1/1000毫秒)精度的浮点值。
注:计算机中的时间表示是从1970年1月1日00:00:00开始,以毫秒进行计算。称1970年这个时刻成为“unix时间点”
绘图
import turtle
#定义多个点的坐标
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)
#计算起始点和中点的距离
import math
disance = math.sqrt((x1-x4)**2+(y1-y4)**2)
print(disance)
布尔值 Ture False(0,1)
比较运算符:所有比较运算符返回1表示真,返回0表示假。这与布尔值类似
a=1,b=2
== 等于 (a==b)真返回1,假返回0
!=不等于,比较两个值是否不等
大于,返回X值是否大于Y值
<小于,返回X是否小于Y
=大于等于,返回X是否大于等于Y
<=小于等于,返回X是否小于等于y
逻辑运算符
与(and),或(or),非(not)
同一运算符
统一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。
is 判断两个标识符是不是引用的同一个对象
is not 判断两个标识符是不是引用不同的对象
is和==的区别
is用于判断两个变量是否是同一个,比较对象的地址
==用于判断引用变量引用对象的值是否相等,默认调运对象的__eq__()方法。
整数缓存问题:
python仅仅对比较小的整数进行缓存(范围为[-5,256]),而并非是所有整数对象。需要注意的是这仅仅是在命令中执行,而在pycharm中或保存为文件执行,结果是不一样的,因为解释器做了一部分优化。
**小整数对象[-5,256]在全局解释器范围内被放入缓存供重复使用。
is运算符效率比==高,在变量和None进行比较的时候,应该使用is。
字符串基本特点
python不支持单字符类型,单字符也是作为一个字符串使用的。
python的字符串是不可变的。
字符串的编码
python3直接使用unicode,默认为16位的Unicode。
内置函数ord()可以把字符转换成对应的unicode码。使用内置函数chr()可以把十进制数字转换成对应的字符。
引号创建字符串
在字符串中包含单引号。
连续三个单引号或三个双引号,可以帮助我们创建多行字符串。
空字符串和len()函数
python中允许空字符串的存在,不包含任何字符且长度为0
len()用于计算字符串中含有多少字符。
转义字符
我们可以使用“+特殊字符”,实现某些难以用字符表示的效果。
常见的转移字符
\(在行为):续行符
\:反斜杠符号
':单引号
":双引号
\b:退格
\n:换行
\t:横向制表符
\r: 回车
字符串的拼接
1、可以使用+将多个字符串拼接起来
两边都是字符串,则拼接;两边都是数字,则加法运算;两边类型不同,抛出异常。
2、可以将多个字面字符串直接放到一起实现拼接。
字符串的复制
可以直接使用字符串乘以要复制的次数实现字符串复制。
不换行打印:
在print的时候不想换行,可以通过参数end=“任意字符串”,实现末尾添加任何内容。
从控制台上读取字符串
可以使用intput(0从控制台上读取键盘输入的内容。
str()实现数字转型字符串,帮助将其他类型数据转换为字符串类型数据。
使用[]提取字符
字符串的本质就是字符序列,我们可以通过在字符串后添加[],在[]中指定偏移量,可以提取该位置的单个字符串。
正向搜索:最左侧第一个字符偏移量为0,最后一个偏移量为len(str)-1
反向搜索:左右边第一个字符偏移量是-1;倒数第二个偏移量是-2,以此类推吗,知道-len(str)为止。
replace()实现字符串替换
字符串是不可以改变的,我们在需要替换某些字符的时候,只能通过黄健新字符串来实现。整个过程,实际上我们是创建了新的字符串的对象,并指向了变量a,而不是对以前的字符串进行修改。
字符串的切片slice操作
slice操作可以让我们快速的提取子字符串。标准格式为:[起始偏移量start:终止偏移量end:步长step]
典型操作
[:] 提取整个字符串
[start:] 从start索引开始到结尾
[:end] 从开头直到end-1
[start:end] 从start到end-1
[start:end:step] 从start提取到end-1,步长是step
其他操作(三个量为负的情况):
[-3:]倒数3个
[-8,-3]倒数第八个到倒数第三个(包头不包尾)
[::-1]步长为负,从右到左反向提取
split()分割和join()和合并
split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。
join()的作用和split()作用刚好相反,用于将一系列的字符串连接起来。
字符串驻留机制和字符串比较
字符串驻留:
仅保存一份相同且不可便字符串的法昂夫,不同的值被存放在字符串驻留池中。
python支持字符串驻留机制,对于符合标识符规则的字符串(仅包括下划线(_),字母和数字)会启用字符串驻留机制。
字符串比较和同一性
直接使用==,!=对字符串进行比较,是否含有相同的字符。
is,is not,判断两个对象是否是同一个对象。比较的是对象的地址,即id(obj1)是否和id(obj2)相等。
成员操作符: in/in not 关键字,判断某个字符(子字符串)是否存在于字符串中。
字符串常用方法汇总
常用查找方法:
len(a)字符串长度
a.startswith(“我是”) 以指定字符串开头
a.endswith(“过”) 以指定字符串结尾
a.find(“高”)第一次出现指定字符串的位置。
a.rfind(“高”)最后以此出现指定字符串的位置。
a.count(“编程”)指定字符出现了几次
a.isalnum()所有字符全是字母或者数字。
去除首尾信息:
我们可以通过strip()去除字符串首尾指定信息。通过lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息。
大小写转换:
a.capitalize()产生新的字符串,首字母大写
a.title()产生新的字符串,每个单词首字母大写。
a.upper()产生新的字符,所有字符全转换成大写
a.lower()产生新的字符串,所有字符全转成小写。
a.swapcasse()产生新的,所有字母大小写转换。
格式排版:center(),ljust()。rjust
字符串的格式化
*format()*基本用法
填充和对齐:
填充常和对其一起使用
<>^分别是左对齐、右对齐,居中
,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
数字格式化:浮点数通过f,整数通过d进行需要的格式化。
。