Python(解释型、面向对象)
1.关闭交互窗口
(1)Ctrl+C和回车
(2)输入quit()命令
(3)直接关闭命令行窗口
2.中断程序执行
Ctrl+C
3.常用快捷键
4.注意
(1)不能随意添加空格,其有缩进的含义
(2)符号均为英文
程序基本格式
1.空格–缩进问题
(1)编辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,用来决定语句的分组。
(2)语句从新行的第一列开始。
(3)缩进风格统一:
①每个缩进层次使用单个制表符或四个空格(IDE自动将制表符设置成4个空格)
②Python用缩进而不是{}表示程序块
2.Python区分大小写
3.注释
(1)行注释:行首加#号
(2)段注释:使用三个连续单引号(‘’')。
海龟画图方法
import turtle #导入turtle模块
turtle.方法名() #调用方法
.showturtle() #显示箭头
.write() #写字符串
.forword(x) #前进x像素
.color() #改变画笔颜色
.left(y) #左转y度
.goto(x,y) #前往坐标(x,y)
.penup() #抬笔,不画出路径
.pendown() #落笔,画出路径
.circle() #画圆
.width() #画线宽度
练习“五环”
import turtle
turtle.width(10)
turtle.circle(50)
turtle.color("red")
turtle.penup()
turtle.goto(120,0)
turtle.pendown()
turtle.circle(50)
turtle.color("blue")
turtle.penup()
turtle.goto(240,0)
turtle.pendown()
turtle.circle(50)
turtle.color("orange")
turtle.penup()
turtle.goto(60,-30)
turtle.pendown()
turtle.circle(50)
turtle.color("yellow")
turtle.penup()
turtle.goto(180,-30)
turtle.pendown()
turtle.circle(50)
对象
Python中一切皆对象,由标识、类型、value(值)组成
1.标识用于唯一标识对象、对应对象的储存地址,内置函数id(x)可返回对象x的标识
2.类型用于表示对象储存的数据类型,使用type(x)获得对象的所属类型
3.使用print(x)可以直接打印出值
引用
1.变量储存对象的地址,通过地址引用对象
2.变量位于栈内存
3.对象位于堆内存
标识符
1.必须以字母或下划线开头,不能使用关键字,以双下划线开头和结尾的名称有特殊含义
2.常量名全大写,多个用下划线隔开。
变量命名和简单赋值语句
1.使用del x删除变量x(对象如没有变量引用,就会被垃圾回收,清空内存)
2链式赋值用于一个对象赋值给多个变量a=b=1,相当于a=1,b=1
3.系列解包赋值(对象与变量个数必须保持一致)
如a,b,c=1,2,3相当于:a=1,b=2,c=3
Python不支持常量,约定常量的命名规则且不对常量值做出修改
int储存任意大小整数
数字
幂:2**3=8
整数除法:7//2=3
使用divmod()函数同时得到商和余数
0b/0B 二进制
0o/0O 八进制
0x/0X 十六进制
使用int()进行类型转换,int(True)=1,int(False)=0
浮点数
float浮点数,使用float()方法将其他类型转为浮点数
round(x)可返回x四舍五入的值**(不会改变原有值,二是产生新的值)**
时间
以毫秒(1/1000秒)进行计算,通过time.time()获取当前时刻
返回值是以秒为单位,带微秒(1/1000毫秒)精度的浮点值
布尔值
True和False本质是1和0,其可以和数字相加
同一运算符
用于比较两个对象的储存单元,实际比较的是对象的地址
is判断两个标识符是不是引用同一个对象,is not 反之
''用于判断引用变量引用对象的值是否相等,(is比“==”效率高
整数缓存问题:Python仅仅对比较小的整数对象进行缓存【-5,256】缓存起来,而并非是所以整数对象,但在Pycharm或保存为文件执行,结果不一样,范围是【-5,任意正整数】
字符串
字符串本质是字符序列,Python的字符串是不可变的,不支持单字符类型,单字符也是作为字符串使用的
使用内置函数ord()可以把字符串换成对应的Unicode码,
chr()可把十进制数字转换成对应的字符
创建字符串
通过单双引号创建字符串 连续三个单引号或双引号可创建多行字符串
允许空字符串存在,长度为0,len()用于计算字符串含有多少字符
字符串拼接:
使用+或直接放在一起进行拼接
字符串复制:
使用x复制x次
不换行打印:
使用end=‘任意字符串’
使用input()从控制台读取键盘输入的内容
str()实现数字转型字符串
使用[]提取字符
①正向搜索:
最左侧第一个字符,偏移量是0,第二个字符为一,类推,直到len(str)-1为止
②反向搜索:
最右侧第一个字符,偏移量是-1,倒数第二个字符为-2,直到-len(str)*为止
replace()实现字符串替换(创建新的字符串对象,指向变量,不是修改之前的字符串)
字符串切片slice
提取子字符串,[起始偏移量:终止偏移量:步长]步长是指隔步长个取一个
起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,不会报错
练习
a = 'to be or not to be'
print(a[::-1])
b = 'sxt'*5
print(b[::3])
![在这里插入图片描述](https://img-blog.csdnimg.cn/985adf2587c942e1bc2be2cae0e6d4c0.png
split()分割和join()合并
split()基于指定分隔符将字符串分割成多个子字符串(储存到列表中),如不指定分隔符,默认使用空白字符(换行符/空格/制表符)
join()的作用与split()相反,用于将一系列字符串连接起来。不推荐‘+’9会生成多个新对象,join()仅生成一个新对象
a = 'to be or not to be'
print(a[::-1])
b = 'sxt' * 5
print(b[::3])
print(a.split())
print(a.split('to'))
c = ['i love u', 'hello', 'goodbye']#列表
print('*'.join(c))
字符串驻留机制:仅包含(下划线,字母,数字)会启用驻留机制,原理是将不同的值存放在驻留池中,且仅保存一份,在相同时不新建对象;
直接使用==,!=对字符串进行比较,是否含有相同的字符,is/not is比较其地址
in/not in判断某个字符是否存在于字符串中 ’字符‘ in ‘字符串’
通过strip()去除字符串首尾指定信息,lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息
大小写转换
center()、ljust()、rjust()用于对字符串实现排版
a.center(x,‘#’)字符串a居中,左右用#补齐
a.ljust(x.‘#’)字符串a左对齐,后面用#补齐
a.rjust(x.‘#’)字符串a右对齐,前面用#补齐
format()格式化字符串,用法:
a=‘姓名:{0},年龄:{1}’
a.format(“小明”,19)
输出:‘姓名:小明,年龄:19’
可通过{索引}/{参数名}直接映射参数值,忽略顺序
填充与对齐:、<、>分别表示居中、左对齐、右对齐,后面带宽度。用法:"xxx{0},xxxx{1:y8}".format(“ww”,zz}(居中用法)
结果:“xxxww,xxxxyyyzzzyyy”
数字格式化:浮点数用f、整数用d
可变字符串:使用io.StringIO对象或array进行修改字符串,使用例子:
import io
a = "hello,my frind"
b = io.StringIO(a)
print(b.getvalue())
b.seek(10)
b.write("w")
print(b.getvalue())