文章目录
- Python的简介
- 历史
- 分类
- 优点&缺点
- python的基础
- 变量
- 常量
- 注释
- 基础数据类型
- 逻辑语句
- if判断
- while循环
- for循环
- break 和 continue
- 逻辑运算符
- 前后都是比较运算
- 前后都是数字
- 用户交互(input)
- 格式化输出
- 三元运算
Python的简介
历史
- 创始人, 龟叔, 89年圣诞期间创造python
- 2020年python2x不再更新
- 2004年出现Django
分类
- 编译型: 将你的代码一次性全部编译成二进制, 然后再运行
- 缺点: 编译时间长, 开发效率低, 不能跨平台
- 优点: 执行效率高
- 代表:
- PyPy, 将python代码一次性全部转化成字节码, 然后转换成二进制, 交由操作系统执行
- 解释型: 程序开始运行时, 逐行解释成二级制, 然后执行
- 缺点: 执行效率低
- 优点: 不需要编译, 开发效率高, 可以跨平台
- 代表:
- Cpython, 根据python规则将python代码转换成c的字节码, 然后转换成二进制, 交由操作系统执行
- Jpython, 根据python规则将python代码转换成java的字节码, 然后转换成二进制, 交由操作系统执行
- 其他语言python, 根据python规则将python代码转换成对应语言的字节码, 然后转换成二进制, 交由操作系统执行
优点&缺点
- 优点:
- 简单易懂, 优雅明确
- 第三方库强大
- 高级语言, 无需考虑如何使用底层
- 可移植性, 可扩展性
- 可嵌入性, 可将C/C++嵌入python(也可将python嵌入C)
- 缺点:
- 执行效率相对慢
- 代码不能加密
python的基础
变量
"""
将程序中运算的中间的结果暂存到内存中, 以便后续程序调用
命名规则
1.变量是由数字, 字母, 下划线任意组合
2.不能是数字开头
3.不能是python的关键字(如: if else while...)
4.变量要具有可描述性
5.变量不使用中文
6.尽量不过长
"""
# 为"值"创建一块内存空间, 将"变量名a"指向它
a = 2
# 将"变量名b"指向"变量名a"对应的"值"的内存空间
b = a
# 将"变量名c"指向"变量名 b"对应的"值"的内存空间
b = a
# 所以三个地址是相同的
print(id(a), id(b), id(c))
# 为"值"创建一块内存空间, 将变量名 b 指向它
b = 3
# 此时 a 和 c 指向同一块内存地址, 所以相同, b 指向另一内存地址, 所以不同
print(id(a), id(b), id(c))
常量
- 一直不变的量, 如π, 约定俗成的将全部大写的变量认知为常量, 放在文件最上边
- 例: BIRTH_OF_CHINA = 19491001
注释
# 单行注释 - 井号
'''
多行注释 - 三个单引号
'''
"""
多行注释 - 三个双引号
"""
基础数据类型
- type() 用于查看数据类型
数据类型 | 示例 | 描述 | 常用场景 |
int | 1,2,3 | 整数 | 数学计算 |
str | “1”, “a”, “-” | 引号内的部分 | 标准输出 |
bool | True, False | 真假 | 用于判断 |
list | [1, “2”, True] | 用于存放各类单一元素(可变) | |
tuple | (1, “2”, True) | 用于存放各类单一元素(不可变) | |
dic | {“Tom”: 99, “Andy”: 98} | 用于存放成对的 kv 元素 |
逻辑语句
if判断
"""
逐条判断, 满足则直接执行, 不进行之后的判断
可以嵌套
"""
if a > 60:
print('及格')
elif a == 60:
print('60')
else:
print('不及格')
while循环
"""
如果while循环没有被break打断, 就会执行else后代码, 反之则不会执行
当条件成立时, 重复执行
"""
c = 1
while c < 5:
print(c)
c += 1
else:
print("while else")
""" 如何终止循环 """
# 1. 改变条件, 使条件不成立
# 具体代码同上
# 2. break 和 continue
# 下边会有介绍
# 3. 引用标志位, 结合 break 等关键字
tag = True
count = 1
while tag:
print(count)
count += 1
if count == 101:
tag = False
break
for循环
- for i in iterable
""" 如果没有使用 break 或 return 跳出循环, 则会在结束前执行 else 下的代码 """
l = [1, 2, 3, 4, 5]
for i in l:
# 中间可以嵌套 if 判断
if i == 'i':
# break 跳出最近的 for 循环, continue 跳过本次循环
break
print(i)
else:
print("finish")
- for i in range(num)
""" else 的使用和上边那个示例一样 """
l = [1, 2, 3, 4, 5]
# 默认初始值为 0
for i in range(5):
print(i) # 0,1,2,3,4
# 可以设定初始值
for i in range(1, 5):
print(i) # 1,2,3,4
# 可以设置步长
for i in range(1,5,2): # 左1 右5 步长2
print(i) # 1,3
else:
print("finish")
- for k,v in dict.items()
""" 使用 dict.items()方法可以分别拿出字典的 k 和 v """
d = {"a":1, "b":2, "c":3}
for k, v in d.items():
print(k, v)
#### 见到一个 github 上项目这么写的
for i in d.items():
print(i[0], i[1]) # 这里 i[0] 就是 key, i[1] 就是 value
break 和 continue
# break 跳出当前循环
for i in range(5):
if i == 3:
break
print(i) # 0 1 2
# continue 跳过当次循环
for i in range(5):
if i == 3:
continue
print(i) # 0 1 2 4
逻辑运算符
前后都是比较运算
- ( ) > not > and > or, 即同一优先级从左至右
# 例1:
print(2>1 and 3 < 4 or 4>5 and 2<1)
# 2>1 and 3<4 --> True
# 4>5 and 2<1 --> False
# True or False --> 结果为True
# 例2:
print(1>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6)
# 1>1 and 3<4 --> False
# 4>5 and 2>1 and 9>8 --> False
# 7<6 --> False
# False or False or False --> False
前后都是数字
- x or y, if x is True, return x, else return y
- int --> bool, 非0为True, 0为False
- 如果是and, 则和or相反
# 练习
print(3 or 2) # 结果为3
print(2 or 6) # 结果为2
print(0 or 6) # 结果为6
print(1 > 2 or 3 and 4 > 5)
# 1 > 2 --> False
# 4 > 5 --> False
# False or 3 and False --> False
用户交互(input)
""" python3 中直接使用 input(), 得到的数据类型均为string """
username = input("username: ")
pwd = input("pwd: ")
print("用户名: %s, 密码: %s" % (username, pwd))
格式化输出
- 以元组形式替换, 按顺序替换
name = input("请输入你的名字: ")
age = input("请输入您的年龄: ")
job = input("请输入您的工作: ")
msg1 = """
----------info of %s----------
Name : %s
Age : %d
Job : %s
----------END----------
""" %(name, name, int(age), job)
print(msg1)
- 以字典形式替换
dic = {"name": "xxx", "age": 45, "job": "IT"}
msg2 = """
----------info of %(name)s----------
Name : %(name)s
Age : %(age)d
Job : %(job)s
----------END----------
""" % dic
print(msg2)
三元运算
a = 10
b = 20
# 如果 b>a, 返回 b, 反之返回 a
x = b if b>a else a
print(x) # 20