学习的三要素
- 知道原理学技术:3w1h what | why | where | how
- 忘掉原理用技术:熟练度
- 回归原理拔技术:源码
使用python的目的
奴役计算机,让计算机以指定的方式帮助我们完成特定的需求
计算机语言的发展
- 机器语言:01代码指令
- 汇编语言:助记词 MOV CMP CF
- 高级语言:java 、C、python
总结
- 机器语言,与机器直接交互,执行效率最高
- 汇编语言,执行效率较高,没有机器语言效率高,开发效率比机器语言高
- 高级语言,执行效率最低,开发效率最高 (重点)
python交互方式
- 实时交互:提前进入python解释器环境
- 文件交互:将文件交给python解释器执行(效率高)
python变量
- what: 可变的 状态(量是用来描述事物的某种状态)
- why: 如何用代码来描述事物的某种(可变化的)状态
- where: …
- how:
- 如何定义变量: 变量名 = 变量值
– name = ‘Jeff’
– 在堆区开辟空间存放变量值,在栈区开辟名为变量名的空间存放堆区变量值那个区域的地址
– name = ‘David’
– 重新赋值,重新开辟空间存放变量值,跟原本的变量名进行绑定,原来变量名name的值就为David - 如何使用变量: 变量名
– 没有被变量名绑定的变量值就会被系统回收
- 如何定义变量: 变量名 = 变量值
变量的三个要素
- 变量值:变量名
- 变量地址:id(变量名)
- 变量的类型:type(变量名)
注意:当新建值,系统就会开辟空间存放该值,但存在python的优化机制,当变量值简单时,python会沿用之前的变量值
n1 = ‘Jeff’
n2 = ‘Jeff’
正常情况(一个值开辟一个空间存放):id(n1) != id(n2)
优化情况(沿用之前空间值):id(n1) == id(n2) (了解)
变量(标识符)命名规范
- 可以由数字、字母、下划线组合
- 不能以数字开头
- 不能与系统关键字保留字重名
- 见名知意,建议使用_(下划线)连接语法(驼峰 jeffDing JeffDing | _连接 jeff_name),一般_开头或结尾都有特殊含义
python3交互输入
变量名 = input(“文本提示”)
注:回车后,系统在控制台等待用户输入具体的 变量值
格式化输出
# 需要从键盘上录入三个变量值
name = input('请输入姓名:')
gender = input("请输入性别:")
age = input("""请输入年龄:""")
# 按照指定的多行文本格式输出
print("""------- name: %s -------
name:%s
gender:%s
age:%s
---------- end ----------""" % (name, name, gender, age))
# %s本质上是为字符串站位,但是可以为所有类型数据进行占位
# %d是数字类型占位符,只能给数字数据站位,否则报错
运算符
算数运算符
+ - * /(有小数的除法) %(取余) **(指数运算) //(整除)
print(10 + 10)
print(5 % 2) # 1
print(5 ** 2) # 25
print(5 // 2) # 2
print(5 / 2) # 2.5
字符串拼接
s = "Jeff"
print(id(s))
end = "!!!"
print(id(end))
s = s + end
print(id(s))
print(s) # Jeff!!!
比较运算符
> < >= <= == !=
# 判断一个值是否大于3小于5
num = input("请输入一个数:")
print(type(num))
# 讲str的num转换为int的num
num = int(num) # 注:类型()可以完成类型转换
print(type(num))
# 可以连比
print(5 > num > 3)
逻辑运算符
# and | or | not
# and为真:两个真 | 为假,有一个及以上为假就为假
# or为假:两个假 | 为真,有一个及以上为真就为真
# not真真假假,假假真真
print(5 > num and num > 3)
# 数字a>10 或是 数字b<30
a = int(input("a<num>:"))
b = int(input("b<num>:"))
print(a > 10 or b < 30)
# 难点(逻辑运算符的短路现象):
# and前为假,整个表达式就为假,后面不用判断,被短路
# or前为真,整个表达式就为真,后面不用判断,被短路
#此处示例非0为真
res = 1 and 2 or 3
print(res) # 2
res = 1 and 0 or 3
print(res) # 3
res = 1 and 0 and 3
print(res) # 0
res = 1 or 0 or 3
print(res) # 1
res = 1 or 0 or 3
print(res) # 1
print(not 1) # False
print(not True) # False
print(not False) # True
print(not 0) # True
== 与 is的比较区别(要拿cmd测试,pycharm会做优化)
print("10" == 10) # False
# == 只做值比较 | is会做id比较
x = "jeff"
y = "jeff"
>>> id(x)
2239318193264
>>> id(y)
2239318193392
>>> x == y
True
>>> x is y
False