常用的程序文件的后缀:
.py python文件
.c C语言源文件
.cpp C++语言文件
.java java语言文件
.c C语言源文件
.cpp C++语言文件
.java java语言文件
python解释执行器
python(python2的解执执行器)
python3
python(python2的解执执行器)
python3
python解执行器的交互模式:
$ python3 <回车> # 进入交互模式
$ python3 <回车> # 进入交互模式
退出交互模式:
>>> exit() <回车>
>>> quit() <回车>
输入 ctrl + d (输入文件结束符)
>>> exit() <回车>
>>> quit() <回车>
输入 ctrl + d (输入文件结束符)
python 注释
python注释是以#开头,直至行尾
作用:
让注释内容不参加解释执行
python注释是以#开头,直至行尾
作用:
让注释内容不参加解释执行
python程序的组成:
程序由模块组成
模块由语句,函数,类等组成
语句包含表达式
表达式建立并处理数据对象且能返回数据对象的引用关系
程序由模块组成
模块由语句,函数,类等组成
语句包含表达式
表达式建立并处理数据对象且能返回数据对象的引用关系
python 的核心数据类型
数字(整型,浮点型,复数,布尔型(bool))
字符串 str
列表 list
...
数字(整型,浮点型,复数,布尔型(bool))
字符串 str
列表 list
...
整型数 int
整型数是不带有小数部分的数字。包括自然数,0及负数自然数
如: -2, 100, 0
整数字面值的表示方式:
十进制方式表示:
-10
0
99999999999999999
八进制的表示方式(0o开头,后跟0~7)
0o177 (127)
0o11 (9)
十六进制的表示方式(0x开头,后跟0~9,A~F,a~f)
0x11 (17)
0xFF (255)
0x1234ABCD
二进制表示方式 (0b开头,后跟0~1)
0b1001
整型数是不带有小数部分的数字。包括自然数,0及负数自然数
如: -2, 100, 0
整数字面值的表示方式:
十进制方式表示:
-10
0
99999999999999999
八进制的表示方式(0o开头,后跟0~7)
0o177 (127)
0o11 (9)
十六进制的表示方式(0x开头,后跟0~9,A~F,a~f)
0x11 (17)
0xFF (255)
0x1234ABCD
二进制表示方式 (0b开头,后跟0~1)
0b1001
浮点型数 float
浮点数是带有小数部分的数字(小数部分也可以是0)
浮点数的两种表示方式
小数表示:
3.14
3.1
3.0
3.
0.14
.14
科学计数法:
格式:
小数 e/E(正负号) 指数
6.18E-1
2.9979e8
复数 complex
分为两部分:
实部(real)
虚部(image)
注:虚部必须是以j或J结尾的数
分为两部分:
实部(real)
虚部(image)
注:虚部必须是以j或J结尾的数
复数字面值
1j
(2j)
1+1j
1-1j
(-100+100j)
1j
(2j)
1+1j
1-1j
(-100+100j)
布尔类型 bool
用来表示真的假两种状态的类型:
True 表示真(条件满足或成立)
False 表示假(条件不满足或不成立)
说明:
True 值为1
False 值为0
用来表示真的假两种状态的类型:
True 表示真(条件满足或成立)
False 表示假(条件不满足或不成立)
说明:
True 值为1
False 值为0
空值 None
None 是一个表示不存在的特殊对象
作用:
1. 用来语法占位
2. 变量解除绑定
None 是一个表示不存在的特殊对象
作用:
1. 用来语法占位
2. 变量解除绑定
表达式 和 运算符
表达式 expression
由数字或数字和运算符组成
作用:
通常让计算机做一些事情并返回结果
示意
1 + 2
1 + 2 * 3
由数字或数字和运算符组成
作用:
通常让计算机做一些事情并返回结果
示意
1 + 2
1 + 2 * 3
运算符
算术运算符
+ 加法
- 减法
* 乘法
/ 除法
// 地板除 floordiv(python2.3之后)
% 求余
** 幂运算
算术运算符
+ 加法
- 减法
* 乘法
/ 除法
// 地板除 floordiv(python2.3之后)
% 求余
** 幂运算
除法 /
python 的除法不会丢掉小数部分
1 / 3 # 得 0.33333333
python 的除法不会丢掉小数部分
1 / 3 # 得 0.33333333
地板除 //
7 / 3 # 得 2.3333333
7 // 3 # 得 2
3.25 // 1.5 # 得 2.0
7 / 3 # 得 2.3333333
7 // 3 # 得 2
3.25 // 1.5 # 得 2.0
求余 %
7 % 3 # 得 1
3.25 % 1.5 # 得 0.25
7 % 3 # 得 1
3.25 % 1.5 # 得 0.25
幂运算 **
格式:
x ** y
意为 x的y次方
示例:
5 ** 2 # 得 25
3.0 ** 2.0 # 得 9.0
5.6 ** 1.418 # ???
格式:
x ** y
意为 x的y次方
示例:
5 ** 2 # 得 25
3.0 ** 2.0 # 得 9.0
5.6 ** 1.418 # ???
练习:
一个学生毕业后月薪10000元,每年涨20% 算十年后的月薪是多少?
答案:
>>> 10000 * 1.2 ** 10
一个学生毕业后月薪10000元,每年涨20% 算十年后的月薪是多少?
答案:
>>> 10000 * 1.2 ** 10
运算符的优先级
** (高)
* / // % (中)
+ - (相对较低)
优先级示例:
1 + 2 * 3 - 4 / 5 + 6 ** 2
1 + 2 * 3 - 4 / 5 + 36
1 + 6 - 4 / 5 + 36
1 + 6 - 0.8 + 36
7 - 0.8 + 36
6.2 + 36
42.2
1 + 2 * 3 - 4 / 5 + 6 ** 2
1 + 2 * 3 - 4 / 5 + 36
1 + 6 - 4 / 5 + 36
1 + 6 - 0.8 + 36
7 - 0.8 + 36
6.2 + 36
42.2
括号分组子表达式:
用() 可以将表达式分组,()内部的表达式先进行计算
用() 可以将表达式分组,()内部的表达式先进行计算
混合类型自动升级
1 + 2.14 返回类型为浮点型 3.14
1 + 2.14 返回类型为浮点型 3.14
基本输出函数 print
格式:
print(要打印的东西)
示例:
print("hello")
print(1 + 2 * 3)
# 多个数据打印时用逗号分隔开
print(1 + 2, 3 + 4, 100)
等同于
print(3, 7, 100)
练习:
1. 写程序在终端输出图形:
########
# #
# #
########
2. 已知矩形的长边为6cm, 短边为4cm 求矩形的周长和面积
并用print函数打印在终端上
1. 写程序在终端输出图形:
########
# #
# #
########
2. 已知矩形的长边为6cm, 短边为4cm 求矩形的周长和面积
并用print函数打印在终端上
变量
什么是变量
变量是关联一个对象的标识符(符号)
作用:
用来绑定一个数据对象,以便于以后重复使用
变量名的命名方法:
1. 变量名必须为字母(a-zA-Z)或下划线(_)开头,后跟字母,下划线或数字(0-9)
2. 不能使用python的关键字(保留字)
什么是变量
变量是关联一个对象的标识符(符号)
作用:
用来绑定一个数据对象,以便于以后重复使用
变量名的命名方法:
1. 变量名必须为字母(a-zA-Z)或下划线(_)开头,后跟字母,下划线或数字(0-9)
2. 不能使用python的关键字(保留字)
说明:
python变量名区分大小写
合法的变量名:
a a1 b bbb _aaaa __ABCD var get_value
AbCd abcd
不合法的变量名:
1a 123 $ABC +a -b ### @ABC
a1& a#b
python变量名区分大小写
合法的变量名:
a a1 b bbb _aaaa __ABCD var get_value
AbCd abcd
不合法的变量名:
1a 123 $ABC +a -b ### @ABC
a1& a#b
python3的关键字:
True, False, None, is, del, if, elif, else, pass, not ....
(共计33个)
True, False, None, is, del, if, elif, else, pass, not ....
(共计33个)
赋值语句 statement
符号
=
语法:
变量名 = 表达式
或
变量名1 = 变量名2 = 表达式
或
变量名1, 变量名2, ... = 序列
作用:
用于将一个变量绑定(或关联)在一个对象上
说明:
1. 当变量不存在时,创建该变量,并绑定这个对象
2. 当变量存在时,改变这个变量的绑定关系
3. 一个变量只能绑定一个对象
4. 两个变量可以同时绑定同一个对象
示例:
# 求半径为10的圆的周长
print(3.1415926 * 10 * 2)
pi = 3.1415926
print(pi * 20 * 2)
符号
=
语法:
变量名 = 表达式
或
变量名1 = 变量名2 = 表达式
或
变量名1, 变量名2, ... = 序列
作用:
用于将一个变量绑定(或关联)在一个对象上
说明:
1. 当变量不存在时,创建该变量,并绑定这个对象
2. 当变量存在时,改变这个变量的绑定关系
3. 一个变量只能绑定一个对象
4. 两个变量可以同时绑定同一个对象
示例:
# 求半径为10的圆的周长
print(3.1415926 * 10 * 2)
pi = 3.1415926
print(pi * 20 * 2)
python中自动化内存管理
a = 1000
b = 2000
a = a + b
c = a # a 和 c 同时绑定在3000上
a = 1000
b = 2000
a = a + b
c = a # a 和 c 同时绑定在3000上
python 关联/绑定/引用的含义
关联/绑定/引用都是指变量和一个对象的关联关系
python中变量没有类型
关联/绑定/引用都是指变量和一个对象的关联关系
python中变量没有类型
变量示例:
# abc 三个变量同时绑定同一个对象30000
a = b = c = 10000 + 20000
# abc 三个变量同时绑定同一个对象30000
a = b = c = 10000 + 20000
a = 1
b = 2
c = 3
# 以上三行可以写为如下:
a, b, c = 1, 2, 3
a, b, c = [1, 2, 3]
a, b, c = (1, 2, 3)
b = 2
c = 3
# 以上三行可以写为如下:
a, b, c = 1, 2, 3
a, b, c = [1, 2, 3]
a, b, c = (1, 2, 3)
练习:
一. 指定一个圆的半径r 为3cm
1. 计算这个圆的周长是多少cm
2. 计算面积是多少平方厘米
二.将这个圆的半径改为10cm,
再次计算以上数据
一. 指定一个圆的半径r 为3cm
1. 计算这个圆的周长是多少cm
2. 计算面积是多少平方厘米
二.将这个圆的半径改为10cm,
再次计算以上数据
练习:
变量交换练习
已知有两个变量:
a = 10000
b = 20000
问:如何在不创建新的对象的情况下,让a和b交换绑定的对象?
(限时3分钟)
答案:
# 方法1
t = a # 创建一个新的变量用于临时绑定数据
a = b
b = t
# 以上三步是实现交换的经典算法
print(a) # 20000
print(b) # 10000
# 方法2
a, b = b, a # 用序列赋值也可以实现交换
print(a)
print(b)
变量交换练习
已知有两个变量:
a = 10000
b = 20000
问:如何在不创建新的对象的情况下,让a和b交换绑定的对象?
(限时3分钟)
答案:
# 方法1
t = a # 创建一个新的变量用于临时绑定数据
a = b
b = t
# 以上三步是实现交换的经典算法
print(a) # 20000
print(b) # 10000
# 方法2
a, b = b, a # 用序列赋值也可以实现交换
print(a)
print(b)
is / is not 运算符
is 的作用:
判断两个对象是否是同一个对象,如果是同一样对象,返回True,否则返回False
is not 的作用与is 相反
语法:
x is y
x is not y
is 的作用:
判断两个对象是否是同一个对象,如果是同一样对象,返回True,否则返回False
is not 的作用与is 相反
语法:
x is y
x is not y
小整数对象池:
CPython中, 整数-5至 256永远存在于内存中不会释放, 并可以重复使用
CPython中, 整数-5至 256永远存在于内存中不会释放, 并可以重复使用
id 函数:
作用:
返回一个对象在内存中的地址
用法:
id(x)
作用:
返回一个对象在内存中的地址
用法:
id(x)
del 语句 delete
作用:
用于删除变量,同时解除与对象的关联关系,如果可能,则释放对象
语法:
del 变量名
作用:
用于删除变量,同时解除与对象的关联关系,如果可能,则释放对象
语法:
del 变量名
在交互模式下,查看当前作用域内变量的方法:
>>> help("__main__")
退出键: q
>>> help("__main__")
退出键: q
自动化内存管理和引用计数
每个对象都会记录有几个变量引用自身,当引用的数量为0时,则此对象将被销毁
每个对象都会记录有几个变量引用自身,当引用的数量为0时,则此对象将被销毁
复合赋值算术运算符:
y += x 等同于 y = y + x
y -= x 等同于 y = y - x
y *= x 等同于 y = y * x
y /= x 等同于 y = y / x
y //= x 等同于 y = y // x
y %= x 等同于 y = y % x
y **= x 等同于 y = y ** x
练习:
1. 在终端打印出图形:
*
***
*****
*******
2. 中国古代的秤是16两一斤,请问古代的216两是古代的几斤几两?
写程序打印出结果
3. 从凌晨0:0:0 计时,到现在已经过了63320秒,
请问现在是几时,几分,几秒,写程序打印出来
(提示:用地板除和求余可以解决上述问题)
1. 在终端打印出图形:
*
***
*****
*******
2. 中国古代的秤是16两一斤,请问古代的216两是古代的几斤几两?
写程序打印出结果
3. 从凌晨0:0:0 计时,到现在已经过了63320秒,
请问现在是几时,几分,几秒,写程序打印出来
(提示:用地板除和求余可以解决上述问题)