什么是表达式

表达式(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 日

python的枚举和for循环求一个数的约数_[Python 第二版] 4. 分支循环与枚举相关推荐

  1. 质因数 求约数 c语言,【初等数论】 求一个数有多少约数及所有约数之和、分解质因数...

    今天做题遇见,于是就搜了一下,于是就有了这篇文章.(其实我不知道原理....Orz)我觉得分解质因数的最优算法应该不是我这篇文章中的这个.....谁有好的算法可以给我说一下,谢谢. 1.有多少个约数: ...

  2. c/c++求两个数的最大公约数(递归版)

    ** c/c++求两个数的最大公约数(递归版) ** 我们先假设 x>y gcd(x,y)为x与y的最大公约数,先假设gcd(x,y)=d, d为x和y的最大公约数,那么可以得到这样一个结论:x ...

  3. python求一个数的阶乘_阶乘计算python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 问题本身很简单,主要是通过这个小问题来演示python的一些用法,例如测试代码运 ...

  4. 牛顿迭代法求一个数的平方根(python)

    # !/usr/bin/env python # -*- coding: utf-8 -*- """ @Author: P♂boy @License: (C) Copyr ...

  5. c++for循环求最大公约数_C/C++编程笔记:C语言 for 循环精讲!实例讲解带你吃透...

    在循环入口处定义循环三要素,循环条件为真时执行循环体,先判断再循环. 语法 C++中 for 循环的语法为: for (init; condition; increment) { statement( ...

  6. 循环语句(while 与do while与 for)以及分支循环典型案例

    目录 1. 循环中break和continue的作用 2. 分支循环相关例题 2.1 三个数求最大值中间值最小值 2.2 求最大公约数 2.3 求闰年 2.4 求素数 2.5 数9的个数 1. 循环中 ...

  7. r语言 求几个数的最小公倍数_【微课】北师大版五年级数学上册第五单元8找最小公倍数...

    教材内容:教材81-82页的内容. 本节课的内容是在学生掌握了"倍"的基础上学习的,主要是为分数的大小比较和通分奠定基础. 复习旧知 1.因数和倍数的意义: 在a×b=c(a,b, ...

  8. python求两数最大公因数_使用辗转相除法求两个数的最大公因数(python实现)

    数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除a,记做b|a. 性质1:如果c|a,c|b,且对于任意的整数m,n,则有c| ...

  9. python辗转相除_使用辗转相除法求两个数的最大公因数(python实现)

    数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除a,记做b|a. 性质1:如果c|a,c|b,且对于任意的整数m,n,则有c| ...

最新文章

  1. 推荐一些优秀的JavaScript开发框架
  2. boost::container模块实现虚拟测试分配器的程序
  3. Digg:私人制造的时代
  4. English sentences
  5. Redis(案例五:Set数据)
  6. MySQL搭建系列之多实例
  7. 调查了 2 万多名 Python 开发者,有了这些发现!
  8. 理解C语言——从小菜到大神的晋级之路(1)——引言:C语言的前世今生
  9. matlab中的矩阵元素错位,matlab – 如何将矩阵中较弱元素附近的弱元素归零?
  10. AXure RP8 破解码
  11. Eucalyptus云之面纱
  12. 图文详解YUV420数据格式
  13. 怎样通过计算机修改蓝牙音箱,蓝牙音箱怎么连接电脑(图文教程)
  14. 网易公开课 计算机专业课程
  15. The name `AssetDatabase' does not exist in the current context
  16. 花了一年时间开发的YBC管型三维预览控件
  17. 2019领克车展 Max Co币机诞生记
  18. 易语言服务器取cookie,易语言取设COOKIES的代码
  19. uni--ReferenceError plus is not defined
  20. linux运维是什么

热门文章

  1. Waifu2x-Extension-GUI 人工智能无损放大与降噪(超分辨率) 图片 GIF 视频 v1.61.3 更新
  2. KMP讲解(自制动图)
  3. 《程序员成长历程的四个阶段》
  4. 解决百度Ueditor编辑器表格不显示边框问题
  5. 计算机基础文化的读书报告,计算机导论读书报告样稿.doc
  6. 一个简单的HTML网页(千与千寻电影) 大二学生网页设计与制作 电影主题网页制作
  7. 网页视频播放器代码总结大全
  8. 外置MOS管平均电流型LED降压恒流驱动
  9. c语言中gets全拼,25英文【25英文英语头条】- 25英文知识点 - 中企动力
  10. 顺腹式呼吸与逆腹式呼吸的功效及选用(转)