Python中一个模块对应一个源文件
语句是程序的基本单元
“缩进”是Python语法的强制规定,Python中花括号{}不能表示缩进
“Tab制表符”表示一个缩进(一般是使用四个空格表示)
行连接符? \??
#见名知意
#行连接符 反斜杠 \
a = "abcedjndgjsnf\
kkdgjdlmkgfkjg"
print(a)
?运行结果:
?对象:Python中一切皆对象
对象由三部分组成:标识(identity)、类型(type)、值(value)
对象的本质是一个内存块,拥有特定的值,支持使用特定类型的相关操作。
a = 3
print(a) #打印值
print(id(a)) #打印标识
print(type(a)) #打印类型
b = "我爱你"
print(b)
print(id(b))
print(type(b))
运行结果:
Python中,变量也称为:对象的引用(reference)。变量存储的就是对象的地址,变量通过地址引用了“对象”
变量位于:栈内存(压栈出栈等细节)
对象位于:堆内存
Python是动态类型语言:变量不需要显示声明类型。根据变量引用的对象,Python解释器自动确定数据类型
标识符规则:
区分大小写。如:sxt和SXT是不同的
第一个字符必须是字母、下划线,其后的字符是字母数字下划线。
不能使用关键字。如:if、or、while等;
以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。如:是类的构造函数。
基本用法:
使用Python帮助系统查看关键字
help()
输出结果如下:
标识符命名规则:
模块和包名:全小写字母,尽量简单。若多个单词之间用下划线。例:math,os,sys
函数名:全小写字母,多个单词之间用下划线隔开。例:phone,my_name
类名:首字母大写,采用驼峰原则。多个单词时,每个单词第一个字母大写,其余部分小写。例:MyPhone,MyClass,Phone
常量名:全大写,多个单词使用下划线隔开。例:SPEED,MAX_SPEED
变量和简单的赋值语句
变量的声明和赋值:用于将变量绑定到一个对象上,格式 变量名=表达式
变量在使用前必须被初始化(先被赋值)
a = 123
print(a)
可以通过del语句删除不再使用的变量
如果对象没有被变量引用,就会被垃圾回收器自动回收清空内存空间
常量:
Python不支持常量,即没有语法规则限制改变一个常量的值,Python中的常量是假常量,是逻辑上的常量。只能约定常量的命名规则,以及在程序的逻辑上不对常量的值做出修改,实际上可以改变
常量命名一般是大写
MAX_AGE = 150
print(MAX_AGE)
MAX_AGE = 200
print(MAX_AGE)
结果:
链式赋值:
x = y = z = 123
print(x)
print(y)
print(z)
系列解包赋值:
系列数据赋值给相应个数的变量(个数必须保持一致)
a,b,c = 4,5,6
print(a,b,c)
【操作】使用系列解包赋值实现变量值交换
m,n = 100,200
m,n = n,m #变量值互换
print(m,n)
Python内置的四种类型:整型(int)、浮点型(float)、布尔型(bool)、字符串型(str)
变量没有类型,对象有类型
a = 123
b = 3.14
b2 = 314e-3
c = True
d = "hello world"
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print("b2:" +str(b2))
数字和基本运算符:
Python支持整数和浮点数运算
运算符? ? ? ? 说明? ? ? ? ? ? ? ? 事例? ? ? ? ? ? ? ? 结果
+? ? ? ? ? ? ? ? 加法? ? ? ? ? ? ? ? 3+2? ? ? ? ? ? ? ? 5
-? ? ? ? ? ? ? ? 减法? ? ? ? ? ? ? ? ?30-5? ? ? ? ? ? ? ? 25
*? ? ? ? ? ? ? ? 乘法? ? ? ? ? ? ? ? ?3*6? ? ? ? ? ? ? ? 18
/? ? ? ? ? ? ? ? 浮点数除法? ? ???8/2? ? ? ? ? ? ? ? 4.0
//? ? ? ? ? ? ? ? 整数除法? ? ? ? ?7//2? ? ? ? ? ? ? ? 3
%? ? ? ? ? ? ? ? 模(取余)? ? 7%4? ? ? ? ? ? ? ? 3
**? ? ? ? ? ? ? ? 幂? ? ? ? ? ? ? ? ? ?2**3? ? ? ? ? ? ? ? 8
使用 divmod() 函数同时得到商和余数
即 >>>divmod(13,3)
结果 (4,1)
divmod() 是一个函数,返回的是一个元组
print(divmod(13,3))
Python中进制:
十进制
二进制: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
a = 0b101001
b = 0o11
c = 0xff
print(a)
print(b)
print(c)
结果:41
? ? ? ? ? ?9
? ? ? ? ? ?255
使用int实现类型转换:
浮点数直接舍去小数部分。如: int(9.9) 结果是: 9
布尔值 True 转为 1 , False 转为 0 。如: int(True) 结果是 1
字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错
整数可以任意大:
Python3中, int 可以存储任意大小的整数
e = 100**1000
print(e)
浮点数(float):
浮点数用科学计数法表示。比如:3.14 表示成 314E-2 或者 314e-2(相当于三百一十四乘以十的负二次方)
这些数字在内存中也是按照科学计数法存储
类型转换和四舍五入
类似于 int() 我们也可以使用 float() 将其他类型转化成浮点数
整数和浮点数混合运算时,表达式结果自动转化为浮点数。比如: 2+8.0 的结果是 10.0
round(value) 可以返回四舍五入的值,但不会改变原有值,而是产生新的值
增强型赋值运算符:
运算符 + - * ** 和赋值 = 可以构成“增强型赋值运算符”
运算符? ? ? ? ? ? ? ? ? ? ? ? ??例子? ? ? ? ? ? ? ? ? ? ? ? ?????等价
+=? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 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 = 3.14
b = 314E-2
print(b)
c = 9.5
d = round(c) #四舍五入
x = y = 3
y += x
print(y) #y = y + x
x = y = 3
y += x*2 #y = y+(x*2)
print(y)
x = y = 3
y *= x+2 #y = y * ( x + 2 )
print(y)
结果:
3.14
6
9
15
计算机时间的表示是从“1970年1月1日00:00:00”开始,以毫秒(1/1000秒)进行计算。我们也把1970年这个时刻称为“unix时间点”。
Python中可以通过time.time()获得当前时刻,返回的值是以秒为单位,带微秒(1/1000毫秒)精度的浮点值。例如:1630350628.5632517.
import time
b = time.time()
print(b)
b = int(time.time())
print(b)
totalMinutes = b//60
print(totalMinutes)
totalDay = totalMinutes//(60*24)
print(totalDay)
totalYears = totalDay//365
print(totalYears)
结果;
1705398100.201866
1705398100
28423301
19738
54
【操作】定义多点坐标绘出折线并计算起始点和终点的距离。
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)
turtle.done() #该语句让程序等待,而不是直接退出窗口