什么是表达式
表达式(Experession)是运算符(operator)和操作数(operand)所构成的序列.
# 作业计算下列结果
>>> a = 1
>>> b = 2
>>> c = 3
>>> print(a + b *c)
7
>>> a or b and c ## 优先级顺序是 a or (b and c) , 因此不是推测的 3.
1
表达式的优先级
# 如何改变优先级举例
()的优先级最高
a =1
b =2
c =3
(a or b) and c
3
(a or b) and (c + 1)
4
## 左结合 - 从左向右计算
### 默认从左向右计算, 赋值运算符是特例,要右结合计算.
a = 1
b = 2
c = a + b ## 这里执行右结合. 就是先执行 a + b, 再执行 c =
## 这个例子不够有力, 因为算数运算符的优先级本来就会高于赋值运算符
## 举例逻辑运算
c = a or b
### 总结:如果一个表达式里有一个 赋值运算等号的符号, 那么执行右执行.
作业:
# 解释运算顺序-优先级
a = 1
b = 2
c = 2
not a or b + 2 == c
## 答案: False
(not a) or ((b + 2) == c) ## 经验:把括号内的东西看成一个变量
## 解析: 1. == 是比较运算符'相等', 不是赋值运算符, 所以执行左结合
2. not 优先级高于 or. 因此最终结果是 False
### 布尔运算优先级 not > and > or
### 建议使用 (not a) or ((b + 2) == c) , 不能对看代码的人要求太高.
在文本文件中编写 python 代码
# 保存文件.py 并运行 python 程序
代码内容:
a = 1
b = 2
c = 3
print('hello python')
## mac 中使用 textEDIT 软件保存为1.py 文件, 注意: Format -> make plain text
x5s-iMac:~ x5$ python3 /Users/x5/Downloads/1.py ## Terminal中运行 py 程序的格式 python3 + 文件名.py
hello python ## 输出结果
几种 python 的 IDE
pycharm vscode sublime
IDE缩写: integrated development environment 集成开发环境有些人认为 pycharm 才是 IDE, 另外二者不是
note: 初学者要尽量使用自动化少的 IDE, 因为前期尽量手动写全部的代码.
VSCODE 的使用 - 略过
安装 linter
每个人的环境都是不同, 因此请跟随当前教程的步骤, 严格一比一安装所需的软件.
查找问题最关键的原理是: 你要保证你安装的 linter 的版本和 python 版本匹配. 比如 3.x 和 2.x 是不同的文件
步骤:右下角点击 python 的版本号切换所需的 python 版本
点击安装
安装 pylint 可以通过库/包 pip命令.
条件控制
编码规范 PE- 8?
末尾不"强制"加分号作为结尾. 也就是说可以加. 不要花括号括起来代码, python 通过缩进区别代码块技巧: 可以使用 tab 键补全文件名或者命令
python 的注释方法
# 单行注释示例:
快捷键: cmd + /
# 多行注释示例:
```
多行注释 快捷键: alt + shift + a
```
# 或者
'''???'''
条件循环, 循环控制, 分支
# 举例使用布尔值的条件控制
## if 条件语句示例:
mood = True
if mood :
print("go to left")
## 上面和下面例子的区别
if mood :
print("go to left")
# print("back away")
print("back away")
### python 天生是不能压缩和混淆的, 天然是开源的.其他代码是能加密的, python 不能
## 举例 if else
mood = False
if mood :
print("go to left")
else:
print("go to right")
控制语句还可以是表达式
# 举例使用表达式的控制语句
python 控制语句最多用于判断用户的账号密码是否正确
a = 1
b = 2
c = 2
d = []
mood = False
if d :
print("go to left")
# print("back away")
else:
print("go to right")
用户输入账户密码的流程控制
# 用户输入账号密码示例
account = "qiyue"
password = "123456"
print("please input account")
user_account = input() # 引入 input()函数接收用户的输入
print("please input password")
user_password = input() ## 用户输入密码
if account == user_account and password == user_password : ## 这里使用了比较运算符,比较运算符的优先级大于逻辑运算符, 所以无需加括号.
print("success")
else :
print("fail")
语法规范 07:28 6 - 10
一边写代码, 一边去除波浪线(bi)constant 常量一般是不能更改的. 但 python 并不存在常量. 一般常量尽量大写, 比如 account 写成 ACCOUNT. 登录的用户名一般是不变更的, 应该认为是常量 函数或者类要大写. 零散的变量需要封装起来.
模块: 指一个 py 文件, 一个 python 项目是由多个 py 文件(模块)构成的.
python 中使用 4 个空格进行缩进.
note: pylint 只要监测的部分不是函数,类, 就会认为是一个常量.
# 最终更改结果
## 只更改了 account 到 ACCOUNT
ACCOUNT = "qiyue"
password = "123456"
print("please input account")
user_account = input() # 引入 input()函数接收用户的输入
print("please input password")
user_password = input() ## 用户输入密码
if ACCOUNT == user_account and password == user_password :
print("success")
else :
print("fail")
条件控制 - snippet, 嵌套分支, 代码块
在 VScode中:ide 技巧: 输入关键字以便使用片段 snippet. pass概念: 叫做 空语句/占位语句. 常常用于写 API, 里面需要 pass 作为骨架
# 举例
if condition:
pass
else:
pass ## 空语句/占位语句
if condition:
code1 ## 代码块之三
code2 ## 伪代码
code11 ## 代码块之一
code22
code333 ## 代码块之二
code444代码块, 尽量将长长的代码块, 比如一个 if/else 封装为一个函数, 尽量一行里面是短短的一句.
同一个缩进代表同一个代码块
elif 的优点
elif 可以把 if/else 合并在一起简写, 代码更加简洁, 容易阅读.
# 对比 if/else 以及 elif
a = input()
print("a is " + a)
if a == 1 :
print("apple")
else:
if a==2:
print("orange")
else:
if a==3:
print("banana")
else:
print("shopping")
## 上面的例子使用 elif 的表达简洁很多
a = input()
print("a is " + a)
if a == 1 :
print("apple") ## 不仅减少了多行, 而且 print 的代码块提前了. 整体可读性大大增加
elif a==2:
print("orange")
elif a==3:
print("banana")
else:
print("shopping")
## 官方文档建议使用 elif 代替其他语言里的 switch 功能,
## 更加推荐使用字典的方式实现 elif
作业解答
# 上面的例子会报错
a = input()
print("a is " + a)
## 这两行代码会报错. 因为 a 这个变量接收的是字符串
### python2.76中, input()函数接收的是 int 类型, 和 python3 完全不同.
## 一句话解决: a = int(a)
## inupt()接收的是字符串, 动态语言他们的变量是没有具体类型的.
## 这个例子出现一个现象, 动态语言中, 你写错代码了, 但它不会报错.
# 完整示例:
a = input()
print("a is " + a)
a = int(a) ## 转换 a 为 int 格式, 就可以运行下面的比较运算符 == 了.
if a == 1 :
print("apple")
elif a==2:
print("orange")
elif a==3:
print("banana")
else:
print("shopping")
优雅代码
通过两种编程的方法说明解决问题有多重方式, 选择最优雅的那一种.
# 要求返回两个变量中其中一个为真的变量
## 前提: a 和 b 不可能同时为 False
a = 0
b = 1 ## 仅为示例, 也可能是为 3, 6. 等
## 举例 2, 3 看下 `a or b` 的结果
>>> a = 1
>>> b = []
>>> a or b
1
>>> a = ""
>>> b = (1, 2, 3)
>>> a or b
(1, 2, 3)
更简单的方法:
a or b
发布时间: 2020 年 3 月 24 日