python是解释型、面向对象的语言
(1)可读性强
(2)简洁
(3)面向对象
(4)免费和开源
(5)可移植性和跨平台
(1)科学计算
(2)人工智能
(3)WEB 服务端和大型网站后端。 YouTube、gmail 等应用基于 python 开发。
(4)GUI 开发(图形用户界面开发)
(5)游戏开发
(6)移动设备
(7)嵌入式设备
(8)系统运维
(9)大数据
(10)云计算
(1)由模块组成,一个模块对应python源文件,后缀名是:.py
(2)模块由语句组成,按照模块中语句的顺序依次执行
(3)语句是 Python 程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等
Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值) 组成。
(1) 标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数 id(obj) 可返回对象 obj 的标识。
(2)类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的 操作。可以使用 type(obj)获得对象的所属类型。
(3)值表示对象所存储的数据的信息。使用 print(obj)可以直接打印出值。
变量位于:栈内存
对象位于:堆内存
标识符:用于变量、函数、类、模块等的名称。标识符有如下特定的规则:
(1)区分大小写。如:sxt 和 SXT 是不同的
(2)第一个字符必须是字母、下划线。其后的字符是:字母、数字、下划线
(3)不能使用关键字。比如:if、or、while 等。
(4)以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。比如:__init__是类 的构造函数。
格式:变量名=表达式
可以通过 del 语句删除不在使用的变量。
运算符 | 说明 | 示例 | 结果 |
---|---|---|---|
+ | 加法 | 3+2 | 5 |
- | 减法 | 3-2 | 1 |
* | 乘法 | 3*2 | 6 |
/ | 浮点数除法 | 8/2 | 4.0 |
// | 整数除法 | 7//2 | 3 |
% | 模(取余) | 7%4 | 3 |
** | 幂 | 2**3 | 8 |
(1) ·0b 或 0B,
(2)二进制 0 1 ·0o 或 0O,
(3)八进制 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
(1)浮点数直接舍去小数部分。如:int(9.9)结果是:9
(2)布尔值 True 转为 1,False 转为 0。 如:int(True)结果是 1
(3)字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错。
整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0 的结果是 10.0
Python3 中,int 可以存储任意大小的整数,long 被取消。我们甚至可以存储下面的 值:
>>> googol = 10**100
>>> googol
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
浮点数,称为 float。
浮点数用 axb10 形式的科学计数法表示。比如:3.14,表示成:314E-2 或者 314e-2。 这些数字在内存中也是按照科学计数法存储。
(1)使用 float()将其他类型转化成浮点数。
(2)整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0 的结果是 10.0
(3)round(value)可以返回四舍五入的值 注:但不会改变原有值,而是产生新的值
运算符+、-、*,/、//、 ** 和%和赋值符=结合可以构成“增强型赋值运算符”。 a = a + 1 等价于: a +=1
|| 例子| 等价|
+= 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 = a2 %= 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 |
%= | a %= 2 | a = a % 2 |
== 注意:“+=”中间不能加空格!==
通过模块time.time()获得当前时刻
返回的是以秒为单位,带微妙(1/1000毫秒)精度的浮点值
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)
![在这里插入图片描述](https://img-blog.csdnimg.cn/6c2dbb39ba1f4950b052917225f747fb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd2VpeGluXzQ3MDgyNzY5,size_17,color_FFFFFF,t_70,g_se,x_16)
Python3 中,把 True 和 False 定义成了关键字,但他们的本质还是 1 和 0,甚至可以和数 字相加。
>>> a = True
>>> b = 3
>>> a+b
4
所有比较运算符返回 1 表示真,返回 0 表示假。
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象的值是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象的值是否不相等 | (a != b) 返回 true. |
> | 大于 - 返回 x 是否大于 y | (a > b) 返回 False。 |
< | 小于 - 返回 x 是否小于 y | (a < b) 返回 true。 |
>= | 大于等于 - 返回 x 是否大于等于 y | (a >= b) 返回 False。 |
<= | 小于等于 - 返回 x 是否小于等于 y | (a <= b) 返回 true。 |
运算符 | 格式 | 说明 |
---|---|---|
or逻辑或 | x or y | x 为 true,则不计算 y,直接返回 true ;x 为 false,则返回 y |
and 逻辑与 | x and y | x 为 true,则返回 y 的值 ;x 为 false,则不计算 y,直接返回 false |
not 逻辑非 | not x | x 为 true,返回 false x 为 false,返回 true |
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用同一个对象 |
is not | is not 是判断两个标识符是不是引用不同对象 |
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个,既比较对象的地址。
" == "用于判断引用变量引用对象的值是否相等,默认调用对象的 eq()方法。
运算符 | 说明 |
---|---|
and , or , not | 布尔与、布尔或、布尔非 |
is , is not | 同一性判断,判断是否为同一个对象 |
<,<=,>,>=,!=,== | 比较值是否相当,可以连用 |
^ & | 按位或,按位异或、按位与 |
<<, >> | 移位 ~ 按位翻转 |
+,-,*,/,//,% | 加,减,乘,浮点除、整数除、取余 |
** | 幂运算 |
运算符 | 描述 | 示例 | 等价于 |
---|---|---|---|
+= | 加法赋值 字符串拼接 | sum += n、 a += “sxt” | sum = sum + n a = a + “sxt” |
-= | 减法赋值 | num1 -= n | num = num - n |
*= | 乘法赋值 | a *= b | a = a * b |
/= | 浮点除赋值 | a/=b | a = a / b |
//= | 整数除赋值 | a//=b | a = a//b |
%= | 取余赋值 | a%=b | a = a % b |
**= | 幂运算赋值 | a**=2 | a = a**2 |
<<= | 左移赋值 | a<<=2 | a = a<<2 |
>>= | 右移赋值 | a>>=2 | a = a>>2 |
&= | 按位与赋值 | a&=b | a = a&b |
= 按位或赋值 | a | =b | |
^= | 按位异或赋值 | a^=b | a = a^b |
(1)通过单引号或者双引号创建字符串
注意:使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符
(2)连续三个单引号或三个双引号,可以帮助我们创建多行字符串。
Python 允许空字符串的存在,不包含任何字符且长度为 0。
len()用于计算字符串含有多少字符。
转义字符 | 描述 |
---|---|
(在行尾时) | 续行符 |
\ | 反斜杠符号 |
’ | 单引号 |
" | 双引号 |
\b | 退格(Backspace) |
\n | 换行 |
\t | 横向制表符 |
\r | 回车 |
(1) 可以使用+将多个字符串拼接起来。
例如:’aa’+ ’bb’ = =>’aabb’。
如果+两边都是字符串,则拼接。
如果+两边都是数字,则加法运算。
如果+两边类型不同,则抛出异常。
(2)可以将多个字面字符串直接放到一起实现拼接。
例如:’aa’’bb’==>’aabb’
使用*可以实现字符串复制。
不想自动添加换行 符。我们可以自己通过参数 end = “任意字符串”。
使用 input()从控制台读取键盘输入的内容。
(1)str()实现数字转型字符串
(2)使用[]提取字符
字符串的本质就是字符序列,
我们可以通过在字符串后面添加[],在[]里面指定偏移量, 可以提取该位置的单个字符。
正向搜索: 最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推。直到 len(str)-1 为止。
反向搜索: 最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str) 为止
(3)replace()实现字符串替换
(4)字符串切片slice操作
切片 slice 操作可以让我们快速的提取子字符串。
标准格式为:
== [起始偏移量 start:终止偏移量 end:步长 step]==
(5)split()分割和 join()合并
split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。
如果不指定分隔 符,则默认使用空白字符(换行符/空格/制表符)。
方法和使用示例 | 说明 | 结果 |
---|---|---|
len(a) | 字符串长度 | 96 |
a.startswith(‘我是谁’) | 以指定字符串开头 | True |
a.endswith(‘过我’) | 以指定字符串结尾 | True |
a.find(‘高’) | 第一次出现指定字符串的位置 | 2 |
a.isalnum() | 所有字符全是字母或数字 | False |
通过 strip()去除字符串首尾指定信息。通过 lstrip()去除字符串左边指定信息, rstrip()去除字符串右边指定信息。
a = “gaoqi love programming, love SXT”
示例 | 说明 | 结果 |
---|---|---|
a.capitalize() | 产生新的字符串,首字母大写 | ‘Gaoqi love programming, love sxt’ |
a.title() | 产生新的字符串,每个单词都首字母大写 | ‘Gaoqi Love Programming, Love Sxt’ |
a.upper() | 产生新的字符串,所有字符全转成大写 | ‘GAOQI LOVE PROGRAMMING, LOVE SXT’ |
center()
ljust()
rjust()这三个函数用于对字符串实现排版。
isalnum() 是否为字母或数字
isalpha() 检测字符串是否只由字母组成(含汉字)
isdigit() 检测字符串是否只由数字组成。
isspace() 检测是否为空白符
isupper() 是否为大写字母
islower() 是否为小写字母
基本语法是通过 {} 和 : 来代替以前的 % 。 format 函数可以接受不限个参数,位置可以不按顺序
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
浮点数通过 f,整数通过 d 进行需要的格式化
原地修改字符串,可以使用 io.StringIO 对象或 array 模块。