python3分支、循环、条件和枚举(6)
6.1 什么是表达式
表达式(Expression)是由运算符和操作数所构成的序列。
运算符和操作数是有顺序的。
6.2 表达式的优先级
>>> a = 1
>>> b = 2
>>> c = 3
>>> a + b * c //和数学上符号的优先级一样
7
>>> a or b and c // 先做 and 运算再做 or 运算
1
逻辑运算符优先级:not > and > or 。
同级优先级时会从左向右解析(左结合),若出现赋值运算符其结合顺序将会改变(右结合)。
>>> a = 1
>>> b = 2
>>> c = a + b
>>> print (c) //有赋值运算符,是右结合
3
>>> c = a or b //逻辑运算中有赋值运算符,也是右结合
>>> print (c)
1
括号是个万金油,可以用括号强制提升优先级,即括号的优先级是最高的。
>>> a = 1
>>> b = 2
>>> c = 3
>>> (a or b) and c
3
如果出现两个括号,也是先算括号里的
>>> (a or b) and ( c + 1)
4
6.3 表达式优先级练习
>>> a = 1
>>> b = 2
>>> c = 2
>>> not a or b + 2 == c //没有赋值运算符,是左结合,运算顺序是(not a) or ((b + 2) == c )
False
在代码中加上辅助的代码,可以帮助阅读代码的人更快的读懂代码
6.4 在文本文件中编写Python代码
之前所有的内容,都是python中最基础的知识,即基本类型和基本概念
从本章开始进入真正的写代码阶段,之前的知识都是在IDLE中编写的,真正写代码的时候不太可能在IDLE中编写,IDLE只是一个命令行,这一节开始学习如何在文件中编写python代码。
在IDLE中 File→New File 或者点击快捷键 ctrl + N,在Untitled中写代码,写代码后回车不会执行代码,那么怎么执行呢?
即编写代码后,点击File→Save或按快捷键ctrl + S,将文件保存到我们磁盘中(D:\install\python3.7.1),要执行代码,需要在系统的命令行里运行,不同的系统有不同的命令行打开方式,在Linux系统中本身就是命令行,所以是不需要打开的;
在Windows中按win + R 输入 cmd,打开命令行工具
C:\Users\Administrator>D: //切换到D盘
D:\>cd install\python3.7.1 //打开文件存储的目录
D:\install\python3.7.1>dir //查看目录下有哪些东西
驱动器 D 中的卷没有标签。
卷的***是 0006-BDDD
D:\install\python3.7.1 的目录
2018/11/27 15:38 <DIR> .
2018/11/27 15:38 <DIR> ..
2018/10/31 17:30 <DIR> DLLs
2018/10/31 17:30 <DIR> Doc
2018/11/27 15:51 37 hello.py
2018/10/31 17:30 <DIR> include
2018/10/31 17:30 <DIR> Lib
2018/10/31 17:30 <DIR> libs
2018/10/20 14:09 30,189 LICENSE.txt
2018/10/20 14:09 632,203 NEWS.txt
2018/10/20 14:07 97,432 python.exe
2018/10/20 14:06 59,032 python3.dll
2018/10/20 14:05 3,632,792 python37.dll
2018/10/20 14:07 95,896 pythonw.exe
2018/10/31 17:30 <DIR> Scripts
2018/10/31 17:30 <DIR> tcl
2018/10/31 17:30 <DIR> Tools
2018/10/20 14:00 86,840 vcruntime140.dll
8 个文件 4,634,421 字节
10 个目录 316,449,710,080 可用字节
D:\install\python3.7.1>python hello.py //用python命令 运行 hello.py文件
hello python //打印出hello python
python程序运行的原理:python+要运行的文件名
在哪里编写python代码都可以,最后文件的扩展名是.py格式的就可以,但是建议在Untitled中写代码,因为有辅助功能,可以提升编写代码的效率。
推荐带有辅助功能的集成开发环境IDE:pycharm vscode sublime
如何选择这三种环境:
开发比较复杂的项目:pycharm
开发小工具:vscode sublime
建议:如果是语言的初学者,不要使用pycharm这种功能比较强大的开发工具, 因为功能越强大,本来需要手动去做的事情,工具都帮助你做了,这样虽然可以节约我们的时间,但是作为初学者,需要手动的去做很多事情,这样才能加深了解语言的运行原理。
6.5 熟悉VSCode开发环境与Python插件安装
下载VSCode
VSCode下载网址:https://code.visualstudio.com/
下载后傻瓜式安装即可~
快捷键:
显示所有命令 Ctrl+Shift+P
转到文件 Ctrl+P
在文件中查找 Ctrl+Shift+F
开始调试 F5
运行终端 Ctrl+ ~
汉化:
1.在商店中搜索Chinese(Simplied) Lang,安装
2.使用快捷键组合【Ctrl+Shift+p】,在搜索框中输入“configure display language”,点击确定
3.修改locale.json文件下的属性“locale”为“zh-CN”
4.重启vscode工具
如果重启后仍然是英文显示,再把中文插件重新安装一遍,然后再重启工具。
VSCode强大的一点是有很多插件可供选择安装
VSCode本身只提供写代码的一个基本的工具,如果我们想丰富这个工具的功能,可以通过安装插件实现。
常用插件:
python:语法检测、智能感知、断点调试
Terminal:自动更新VSCode里面编写的代码到另一个IDE里面
vscode-icons:美化图标,安装后需要设置:文件=>首选项=>文件图标主题=>VSCode Icons
View In Browser、Vim
6.6 流程控制语句之条件控制
编码规范和风格:
1.末尾不强制加分号,加也可以,不建议加
2.不需要使用花括号把语句包裹起来,python中用缩进区分代码和代码块
条件控制可以解决选择性问题
条件控制 if else
循环控制 for while
分支
注释:# 单行注释 单行注释快捷键:ctrl+/
‘’‘多行注释’’’ 多行注释快捷键:alt+shift+A
mood = True
if mood :
print('go to left')
print('back away')
else :
print('go to right')
6.7 流程控制语句之条件控制二
account = 'zhangsan'
psw = '123456'
print('please input account')
user_account = input()
print('please input password')
user_psw = input()
if user_account == account and user_psw == psw:
print('success')
else :
print('fail')
6.8 常量与Pylint规范
constant 常量 所有字母需要大写,否则会有警告
Python中的常量并不是真正意义上的常量
编程规范:
文件开头需要写模块说明,可以是中文,也可以是英文
代码最后要空出一行
比较/逻辑运算符左右两边各空一格
缩进是四个空格或一个tab键(但要确保一个tab键=四个空格)
'''
模块说明
'''
ACCOUNT = 'zhangsan'
PASSWORD = '123456'
print('please input account')
user_account = input()
print('please input password')
user_psw = input()
if user_account == ACCOUNT and user_psw == PASSWORD:
print('success')
else:
print('fail')
6.9 流程控制语句之条件控制三 snippet、嵌套分支、代码块的概念
snippet(片段)作用:快速构建代码片段
可以用tab切换到下一个编写区域,切换到上一个编写区域用shift + tab
pass 是空语句或占位语句,保持语句完整性。
if 可以单独使用,else 必须要和 if 一起使用。
if else 可以嵌套使用
pass 空语句/占位语句 代码未结束时使用占位
若代码块中有一行代码被执行的话,其他的代码也会被执行,因为代码块中的代码是同级别的
if condition:
code1 //伪代码,伪代码不是真正的代码,主要用来表示一种思路
code2 //伪代码
code11 //另外的代码块,和code2不是同级
code3
else:
code4
code5
过多层次嵌套会使代码易读性差。可以提取成函数,将具体逻辑封装到函数中。
缩进可以决定代码块,缩进相同的是一个代码块。
6.10 流程控制语句之条件控制四 elif的优点
elif不能单独使用,要和 if 一起使用,elif让代码更简洁
在python中没有switch语法
a = input() //a接收到的是str不是int
print('a is ' + a)
if a == '1': //是字符串'1'不是数字1
print('apple')
elif a == '2':
print('orange')
elif a == '3':
print('banana')
else:
print('shopping')
print('shopping')
6.11 改变思维定势
input()函数录入的是字符串str。
动态语言的变量没有一个确切的类型,要格外注意
6.10的代码可以转换成:
a = input() //a接收到的是str不是int
#print(type(a)) //查看数据类型
print('a is ' + a)
a = int(a) //转换成int类型
if a == 1: //是数字1
print('apple')
elif a == 2:
print('orange')
elif a == 3:
print('banana')
else:
print('shopping')
print('shopping')
如何写出优美的代码?
a = x
b = y
前提:a和b不可能同时为False
请从a、b中选取一个数值,返回为真的变量。
用 if else实现 代码量比较多
可以用a or b 进行比较
a or b 不仅仅是一个布尔类型,它还可以返回a、b两个变量具体的数值
上一篇: 中序遍历序列和 后序遍历序列重建二叉树
下一篇: 数据结构学习日记(一)