Python 简介
-
程序员:
程序设计人员。
- 程序:
一组计算机能识别和执行的指令,是实现某种需求的软件。
- 程序员:
程序设计人员。
程序:
一组计算机能识别和执行的指令,是实现某种需求的软件。
操作系统:
管理和控制计算机软件与硬件资源的程序;
隔离不同硬件的差异,使开发程序简单化。
- 操作系统:
管理和控制计算机软件与硬件资源的程序;
隔离不同硬件的差异,使开发程序简单化。
例如,Windows,Linux,Unix。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JefIYOgn-1573646222722)(/home/tarena/1909/笔记/图/day01/计算机基本结构.jpg)]
- 硬件:
主板–计算机的主要电路系统。
CPU --主要负责执行程序指令,处理数据。
硬盘–持久化存储数据的记忆设备,容量大,速度慢。
内存–临时存储数据的记忆设备,容量小,速度快。
IO设备–键盘、鼠标、显示器。
Python 定义
是一个免费、开源、跨平台、动态、面向对象的编程语言。
Python程序的执行方式
交互式
在命令行输入指令,回车即可得到结果。
-
打开终端
-
进入交互式:python3
-
编写代码:print(“hello world”)
-
离开交互式:exit()
文件式
将指令编写到.py文件,可以重复运行程序。
-
编写文件。
-
打开终端
-
进入程序所在目录:cd 目录
-
执行程序: python3 文件名
Linux常用命令
-
pwd:查看当前工作目录的路径
-
ls:查看指定目录的内容或文件信息
-
cd:改变工作目录(进入到某个目录)
练习:
- 在指定目录创建python文件.
–目录:/home/tarena/1908/month01
–文件名:exercise01.py
2. 在文件中写入:print(“你好,世界!”)
\3. 运行python程序
执行过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LCVhbSbX-1573646222724)(/home/tarena/.config/Typora/typora-user-images/1570753670995.png)]
计算机只能识别机器码(1010),不能识别源代码(python)。
-
由源代码转变成机器码的过程分成两类:编译和解释。
-
编译:在程序运行之前,通过编译器将源代码变成机器码,例如:C语言。
– 优点:运行速度快
– 缺点:开发效率低,不能跨平台。
3.解释:在程序运行之时,通过解释器对程序逐行翻译,然后执行。例如Javascript
– 优点:开发效率高,可以跨平台;
– 缺点:运行速度慢。
4.python是解释型语言,但为了提高运行速度,使用了一种编译的方法。编译之后得到pyc文件,存储了字节码(特定于Python的表现形式,不是机器码)。
源代码 – 编译 --> 字节码 – 解释 --> 机器码
|————1次———|
解释器类型
-
CPython(C语言开发)
-
Jython (java开发)
-
IronPython (.net开发)
数据基本运算
代码:
"""
### 汇率转换器
"""
``#获取数据
usd = input("请输入美元:")
#逻辑计算
result = float(usd) * 7.1243
#显示结果
print("人民币是:" + str(result))
pycharm常用快捷键
-
移动到本行开头:home键
-
移动到本行末尾:end键盘
-
注释代码:ctrl + /
-
复制行:ctrl +d
-
选择列:鼠标左键 + alt
-
移动行:shift + alt + 上下箭头
-
智能提示:ctrl + space
-
代码格式化:ctrl+alt+l
注释
给人看的,通常是对代码的描述信息。
-
单行注释:以#号开头。
-
多行注释:三引号开头,三引号结尾。
函数
函数代码:
"""
函数
结果 = 函数名(输入的信息)
"""
# 1. print
# 字面意思:打印/输出/显示
# 参数:需要呈现的内容
# 备注:如果是文字需要放在双引号中
# 适用性:需要显示结果
print("需要呈现的内容")
# 2. input
# 字面意思:输入 从终端到程序
# 参数:需要提示的信息
# 结果:用户实际录入的内容
# 适用性:从终端获取数据
result = input("需要提示的信息")
![](/home/tarena/1909/笔记/day02/day02/函数.jpg)
表示一个功能,函数定义者是提供功能的人,函数调用者是使用功能的人。
例如:
-
print(数据) 作用:将括号中的内容显示在控制台中
-
变量 = input(“需要显示的内容”) 作用:将用户输入的内容赋值给变量
变量
变量内存图:
![](/home/tarena/1909/笔记/day02/day02/变量内存图.jpg)
变量交换思想:
![](/home/tarena/1909/笔记/day02/day02/变量交换思想.jpg)
-
定义:关联一个对象的标识符。
-
命名:必须是字母或下划线开头,后跟字母、数字、下划线。
不能使用关键字(蓝色),否则发生语法错误:SyntaxError: invalid syntax。
3.建议命名:字母小写,多个单词以下划线隔开。程序员:
程序设计人员。
程序:
一组计算机能识别和执行的指令,是实现某种需求的软件。
操作系统:
管理和控制计算机软件与硬件资源的程序;
隔离不同硬件的差异,使开发程序简单化。
class_name
4.创建一个变量或改变一个变量关联的数据。
5.变量名 = 数据
变量名1 = 变量名2 = 数据
变量名1, 变量名2, = 数据1, 数据2
变量代码:
"""
变量
程序运行在哪? --- 内存
程序处理什么? --- 数据
变量:存储数据的
语法:
变量名称 = 数据
= 赋值号: 右边 给 左边
练习:exercise01.py
练习:exercise02.py
练习:exercise03.py
"""
创建变量age关联数据18
age = 18
修改变量age存储的数据地址
age = 100
访问变量存储的数据地址
print(age)
将变量age存储的数据地址 复制一份 给新变量number
number = age
删除变量age
del age
同时创建多个变量
count, id = 10, 901
同时为多个变量赋值
num01 = num02 = num03 = 888
del 语句
- 语法:
del 变量名1, 变量名2
2.作用:
用于删除变量,同时解除与对象的关联.如果可能则释放对象。
3.自动化内存管理的引用计数:
每个对象记录被变量绑定(引用)的数量,当为0时被销毁。
核心数据类型
数据类型代码知识点:
"""
数据类型
变量没有类型
变量关联的对象有类型
"""
# 1. 空值类型
# --表示不存在的特殊对象。
number = None
# -- 占位和解除与对象的关联。
id = 101
id = None
# 2. 整形(整数)int
# 十进制(逢十进一)
# 0123456789 10 11 12 ... 2? 3? ... 99 100
number = 10
# 二进制(逢二进一)0 1 10
number = 0b10
print(number)# 以十进制显示2
# 八进制(逢八进一)0 1 2 3 4 5 6 7 10
number = 0o10
print(number)# 以十进制显示8
# 十六进制(逢十六进一)0 1 2 .. 9 a(10) f(15) 10
number = 0x10
print(number)# 以十进制显示16
# 3. 浮点型 float
number = 1.5
number = 0.00005
print(number)# 5e-05
# 4. 字符串str
name = "张无忌"
str01 = "1" + "2" # 字
print(str01)# 12
str01 = 1 + 2# 数 支持数学运算
print(str01)# 3
# 5. 复数 complex
# 实部 虚部 j
number = 1 + 1j
number = 1j
print(type(number))
-
在python中变量没有类型,但关联的对象有类型。
-
通过type函数可查看。
空值对象 None
-
表示不存在的特殊对象。
-
作用:占位和解除与对象的关联。
整形int
- 表示整数,包含正数、负数、0。
如: -5, 100, 0
2.字面值:
十进制:5
二进制:0b开头,后跟1或者1
八进制:0o开头,后跟0~7
十六进制:0x开头,后跟09,AF,a~f
浮点型float
-
表示小数,包含正数、负数,0.0)。
-
字面值:
小数:1.0 2.5
科学计数法:e/E (正负号) 指数
1.23e-2 (等同于0.0123)
1.23456e5(等同于123456.0)
字符串str
是用来记录文本信息(文字信息)。
字面值:双引号
复数complex
由实部和虚部组成的数字。
虚部是以j或J结尾。
字面值: 1j 1+1j 1-1j
布尔bool
运算符代码:
"""
bool
比较运算符 > < == != >= <=
逻辑运算符
练习:exercise09.py
"""
# 1. 命题:带有判断性质的陈述句.
# 你是个美女.
# 如果成立 True 不成立 False
# 2. 比较运算符
# 比较数值大小 , 结果是bool类型.
number01 = 8
number02 = "8"
print(number01 == number02) # 8 == "8" --> Flase
# 3. 逻辑运算符
# 判断2个bool值关系的
# 与 and 一假俱假 表达"并且"关系(所有条件必须都满足)
print(True and True) # True
print(False and True) # False
print(True and False) # False
print(False and False) # False
# 或 or 一真俱真 表达"或者"关系(有一个就行)
print(True or True) # True
print(False or True) # True
print(True or False) # True
print(False or False) # False
# 非 取反
print(not True) # False
用来表示真和假的类型
True 表示真(条件满足或成立),本质是1
False 表示假(条件不满足或不成立),本质是0
数据类型转换
数据类型转换代码知识点:
"""
数据类型转换
input 结果是字符串
"""
usd = "8.5+"
# str --> float
# 注意:字符串必须长得"像"需要转换的类型
usd = float(usd)
# float --> str
print("结果是:"+str(usd))
-
转换为整形: int(数据)
-
转换为浮点型:float(数据)
-
转换为字符串:str(数据)
-
转换为布尔:bool(数据)
结果为False:bool(0) bool(0.0) bool(None)
5.混合类型自动升级:
1 + 2.14 返回的结果是 3.14
1 + 3.0 返回结果是: 4.0
运算符
除法图:
![](/home/tarena/1909/笔记/day02/day02/除法.jpg)
算术运算符
运算符代码:
"""
运算符
算数运算符+ - * 数学的除法/ 地板除// 取余数% 幂运算**
增强运算符+= -= *= /= //= %= **=
练习:exercise04.py
练习:exercise05.py
练习:exercise06.py
练习:exercise07.py
练习:exercise08.py
"""
# 1. 算数运算符
number01 = 5
number02 = 2
print(number01 + number02)
# 5 的 2次方
print(number01 ** number02)
# 2. 增强运算符
number03 = 10
print(number03 + 5)
# 没有改变number03
print(number03) # 10
# number03运算后又赋值给了自身
number03 += 5 # number03 = number03 + 5
+ 加法
- 减法
× 乘法
/ 除法:结果为浮点数
// 地板除:除的结果去掉小数部分
% 求余
** 幂运算
优先级从高到低: ()
**
* / % //
+ -
增强运算符
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
比较运算符
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于
返回布尔类型的值
比较运算的数学表示方式:0 <= x <= 100
逻辑运算符
逻辑运算符图:
![](/home/tarena/1909/笔记/day02/day02/逻辑运算符.jpg)
与and
表示并且的关系,一假俱假。
示例:
True and True # True
True and False # False
False and True # False
False and False # False
或or
表示或者的关系,一真俱真
示例:
True or True # True
True or False # True
False or True # True
False or False # False
非 not
表示取反
例如:
not True # 返回False
not False # 返回True
短路运算
一但结果确定,后面的语句将不再执行。
# (面试题)
# 短路逻辑:
# 现象:后面的条件不会影响结果时,不再执行.
# 价值:耗时(复杂)的条件应该尽量放在前还是后
# 代码: 条件1 and 条件2 or 条件3 .....
# false and ?
# 如果and前面是false,后面的条件不会影响结果,所以不执行.
# re = 1 > 2 and print("你看见我了吗?")
# true or ?
# 如果or前面是true,后面的条件不会影响结果,所以不执行.
re = 1 < 2 or print("你看见我了吗?")
身份运算符
语法:
x is y
x is not y
作用:
is 用于判断两个对象是否是同一个对象,是时返回True,否则返回False。
is not 的作用与is相反
优先级
高到低:
算数运算符
比较运算符
快捷运算符
身份运算符
逻辑运算符
语句
行
-
物理行:程序员编写代码的行。
-
逻辑行:python解释器需要执行的指令。
-
建议一个逻辑行在一个物理行上。
-
如果一个物理行中使用多个逻辑行,需要使用分号;隔开。
-
如果逻辑行过长,可以使用隐式换行或显式换行。
隐式换行:所有括号的内容换行,称为隐式换行
括号包括: () [] {} 三种
显式换行:通过折行符 \ (反斜杠)换行,必须放在一行的末尾,目的是告诉解释器,下一行也是本行的语句。
代码:
"""
行
"""
# (建议) 3个物理行 对应3个逻辑行
a = 10
b = 20
c = a + b
# (不建议)1个物理行 对应3个逻辑行
a = 10;b = 20;c = a + b
# (代码过长)3个物理行 对应1个逻辑行
a = 1 + 2 + \
3 + 4 + 5 \
+ 6 + 6
a = 1 + (2 +
3 + 4 + 5
+ 6) + 6
pass 语句
通常用来填充语法空白。
选择语句
If elif else 语句
- 作用:
让程序根据条件选择性的执行语句。
2.语法:
"""
选择语句
练习:exercise01.py ~ exercise06.py
"""
sex = input("请输入性别:")
# 如果 变量sex 存储的数据等于"男"