Python简要介绍![](https://i-blog.csdnimg.cn/blog_migrate/56804630e1900dbc49a4ba125b3693eb.jpeg)
特点 ①可读性②简洁性③面向对象④免费开源⑤可移植,扩平台
Tip:在执行性能性需求高的程序时应避免使用python(python用作执行解释)
执行依赖于解释器
CPython(C语言)JPython(Java)IronPython(.Net)PyPy(Python)
初识
1、Python使用(交互式窗口 Shen模式)
1.运行输入cmd打开控制台,输入python以使用
2>>>为"提示符"
3.输入quit()/手动ctrl+z以结束
4.执行时中断ctrl+c
2.开发环境IDE
主流开发环境:①IDLE②Pycharm③vscode④Eclipse
项目创建 项目运行
快捷键
Tips:
①项目开头不要用空格" ",空格表示缩进含义。
②项目内符号都用英文。
3.程序格式
print("u are a pig")
#这是单行注释
'''
这是多行注释
'''
补充:一个缩进=四个空格。tab键=四个空格。
print("u are\
a pig")
#\是行链接符
图形化程序设计
import turtle#导入turtle模块
turtle.showturtle()#显示箭头
turtle.write("pig")#写字符串
turtle.forward(300)#前进300像素,以x轴正方向
turtle.color("blue")#改变颜色
turtle.left(90)#箭头转向90°
turtle.goto(0.50)#前往坐标
turtle.penup()#不显示轨迹
turtle.pendown()#显示轨迹
turtle.circle(50)#画圆,以x轴负方向找圆心,括号内半径
补充:turtle.width(50)#线条宽度50
代码示例:海龟图
import turtle
t = turtle.Pen()
for x in range(360):
t.forward(x)
t.left(59)
实践作业1:五环设计(简单粗暴法)
import turtle
turtle.color("blue")
turtle.circle(50)#第一个
turtle.left(270)
turtle.penup()
turtle.forward(25)
turtle.pendown()
turtle.color("yellow")
turtle.circle(50)#第二个
turtle.left(90)
turtle.penup()
turtle.forward(100)
turtle.left(90)
turtle.forward(25)
turtle.left(270)
turtle.pendown()
turtle.color("black")
turtle.circle(50)#第三个
turtle.left(270)
turtle.penup()
turtle.forward(25)
turtle.pendown()
turtle.color("green")
turtle.circle(50)#第四个
turtle.left(90)
turtle.penup()
turtle.forward(100)
turtle.left(90)
turtle.forward(25)
turtle.left(270)
turtle.pendown()
turtle.color("red")
turtle.circle(50)#第五个
Python程序构成
①Python程序由模块组成,一个模块对应Python源文件,一般后缀名为.py
②模块由语句组成。运行Python程序时,按照模块中语句顺序依次进行。
③语句是Python程序的构造单元,用于创建对象,变量赋值,调用函数,控制语句等。
对象
例:a=3,而3的id为114514,则赋值后a的id为1141514
引用
TIps:不同于c语言,不需要int a=3,直接写a=3
(因为3已是type“int”型)
标识符
①区分大小写
②第一个字符是字母、下划线、数字
③不能用关键字
④避免用双下划线开头/结尾
删除变量
使用del删除不需要的变量以节省空间
(
您完全不占空间是吗?)
数
赋值
①链系赋值 x=y=1
②系列解包赋值 >>>a,b,c=1,2,3即a=1,b=2,c=3
Tip:Python不支持常量
运算符
常规运算符
运算符 | 说明 | 示例 | 结果 |
+ | 加法 | 1+1 | 2 |
- | 减法 | 1-1 | 0 |
* | 乘法 | 2*3 | 6 |
/ | (浮点数)除 | 6/3 | 2.0 |
// | 整数除法 | 7//2 | 3 |
% | 模(取余数) | 7%4 | 3 |
** | 幂 | 2**3 | 8 |
复合赋值运算符
+= | a+=2 | a=a+2 |
-= | a-=2 | a=a-2 |
*= | a*=2 | a=a*2 |
/= | a/=2 | a=a/2 |
//= | a//=2 | a=a//2 |
**= | a**=2 | a=a**2 |
%= | a%=2 | a=a%2 |
Tip:Python不支持自增(++)自减(--)
比较运算符(a=1,b=2)
== | 等于 | (a==b)返回0 |
!= | 不等于 | (a!=b)返回1 |
> | 大于 | (a>b)返回0 |
< | 小于 | (a<b)返回1 |
>= | 大于等于 | (a>=b)返回0 |
<= | 小于等于 | (a<=b)返回1 |
Tip:比较运算符可以连用,例:3<a<4
逻辑运算符
or 或 | X or Y |
and 与 | X and Y |
not 非 | not X |
补充:异或XOR
同一运算符
is | 判断两个标识符是否引用同一个对象(地址是否相同) |
is not | 判断两个标识符是否引用不同对象 |
Tip:①函数 divmod()
同时得到商和余数
>>>dicmod(13,3)
(4,1)
②函数 round()
四舍五入
>>>round(3.14)
3
位操作
bin() 将数字转化为二进制显示
位
用于快速乘除法
<<,每个"<"表示乘几次
>同理
整数(进制转换) (待补充!!!!)
① 0b or 0B 二进制
② 0o or 0O 八进制
③ 0x or 0X 十六进制
(直接在后边写数字,不要加空格,例0x1a)
时间
time.time() 显示时间(以1970.1.1开始)单位为秒,以微秒为精度(1秒=1000000微秒)
实践作业2
求轨迹始末点距离
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)
distance=math.sqrt((x1-x4)**2+(y1-y4)**2)
turtle.write(distance)
字符串
字符串:字符序列(Python中字符串不可变,修改是创建新的字符串,不支持单字符类型,单字符作为字符串)
Python3支持Unicode,字符默认16位(2**16个)Unicode编码(ASCII是其子集)
字符串常用函数汇总
① ord() 将字符转换为对应 Unicode码
② char() 十进制数转为对应字符
③ len() 查阅字符串长度
④ str() 将其他类型变为字符串 (在用print时默认转换)
字符串创建
可以用 " " or ' '
在字符串中出现 ' 时用 " " 括起来
多行字符串连续用三个""" or '''括起来
#单行字符串
question = ' " are u a pig? " '
question
"are u a pig? "
#多行字符串
question = ''' " are u
a pig?" '''
question
"are u a pig?"
空字符串
不包含任何字符,长度为0
a = ''
len(a)
0
b = 'abc'
len(b)
3
转义字符
\(在行属时) | 续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\b | 退格 |
\n | 换行 |
\t | 横向制表符 |
\r | 回车 |
字符串拼接,复制
用加法or空格,左右类型要相同('u are' ' a pig'==>' u are a pig')
复制用乘法
不换行打印
用 ,end="任意内容"
控制台读取字符串
提取字符
用 [ ]
从左到右为 0.1.2.3........字符长度-1
从右到左为 -1,-2,-3.....-字符长度
切片提取字符串
操作 | 示例 | 结果 |
[:]提取整个字符串 | "abcdef"[:] | "abcdef" |
[start:]从start开始到最后 | "abIcdef"[2:] | "cdef" |
[:end]从头开始到end-1 | "abIcedf"[:2] | "ab" |
[start:end:step]从start开始到end-1,步长为step | "aIbcdeIf"[1:5:2] | "bd" |
(包头不包尾)
Tip:start<0会作为0,end>字符串长度-1会当作-1,步长为2即间隔1个
特殊:start,end,step为负
"abcdef"[-3:] | 倒数三个 | "def" |
"abcdef"[-5:-2] | 从倒数第五到倒数第二 | "bcd" |
"abcdef"[::-2] | 倒过来提取 | "fdb" |
分割与合并
分割:.split()
默认使用(空格/换行符/制表符)分割。
可以特指分割
合并:.join()
‘合并用的东西’.join(字符串)
替换字符
用 .replace() 此处替换是把所有的都换掉
替换是创建新的字符串
字符串驻留机制
对于符合标识符规则的字符串(仅仅包含下划线_,字母,数字),会有驻留机制
Tip:==看字符串的内容
is 看地址
成员操作符
in/not in
字符串方法
常用查找
a='''u are a pig'''
len(a) | 字符串长度 | 11 |
a.startswith('u') | 以指定字符串开头 | Ture |
a.endswith('pig') | 以指定字符串结尾 | Ture |
a.find('a') | 第一次出现指定字符串的位置 | 2 |
a.rfind('a') | 最后一次出现指定字符串的位置 | 6 |
a.count('a') | 指定字符出现次数 | 2 |
a.isalnum() | 所有字符全是字母或数字 | Ture |
去除首尾信息
.strip()
大小写转化
a="hello World"
a.capitalize() | 产生新的字符串,首字母大写 | 'Hello World' |
a.title() | 产生新的字符串,每个单词首字母大写 | 'Hello World' |
a.upper() | 产生新的字符串,所有字符转成大写 | 'HELLO WORLD' |
a.lower() | 产生新的字符串,所有字符转小写 | 'hello world' |
a.swapcase() | 产生新的字符串,所有字符大小写转换 | 'HELLO wORLD' |
格式排版
a="HI"
a.center(10) | ' HI ' |
a.center(10,'*') | '****HI****' |
a.ljust(10) | 'HI ' |
a.rjust(10) | ' HI' |
其他
字符串格式化
.format()
{}内数字从0开始,其他字符需要指明
填充&对齐
^居中,<左对齐,>右对齐,后面加字符宽度。
:后面带填充字符(即填充的内容),只能为一个字符,默认为空格
可变字符串
字符串2=io.StringIO(字符串1)
.getvalue() 获取字符串
.seek() 定位字符串内位置
.write() 更改指定位置字符