python的枚举和for循环求一个数的约数_[Python 第二版] 4. 分支循环与枚举
什么是表达式
表达式(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. 分支循环与枚举相关推荐
- 质因数 求约数 c语言,【初等数论】 求一个数有多少约数及所有约数之和、分解质因数...
今天做题遇见,于是就搜了一下,于是就有了这篇文章.(其实我不知道原理....Orz)我觉得分解质因数的最优算法应该不是我这篇文章中的这个.....谁有好的算法可以给我说一下,谢谢. 1.有多少个约数: ...
- c/c++求两个数的最大公约数(递归版)
** c/c++求两个数的最大公约数(递归版) ** 我们先假设 x>y gcd(x,y)为x与y的最大公约数,先假设gcd(x,y)=d, d为x和y的最大公约数,那么可以得到这样一个结论:x ...
- python求一个数的阶乘_阶乘计算python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 问题本身很简单,主要是通过这个小问题来演示python的一些用法,例如测试代码运 ...
- 牛顿迭代法求一个数的平方根(python)
# !/usr/bin/env python # -*- coding: utf-8 -*- """ @Author: P♂boy @License: (C) Copyr ...
- c++for循环求最大公约数_C/C++编程笔记:C语言 for 循环精讲!实例讲解带你吃透...
在循环入口处定义循环三要素,循环条件为真时执行循环体,先判断再循环. 语法 C++中 for 循环的语法为: for (init; condition; increment) { statement( ...
- 循环语句(while 与do while与 for)以及分支循环典型案例
目录 1. 循环中break和continue的作用 2. 分支循环相关例题 2.1 三个数求最大值中间值最小值 2.2 求最大公约数 2.3 求闰年 2.4 求素数 2.5 数9的个数 1. 循环中 ...
- r语言 求几个数的最小公倍数_【微课】北师大版五年级数学上册第五单元8找最小公倍数...
教材内容:教材81-82页的内容. 本节课的内容是在学生掌握了"倍"的基础上学习的,主要是为分数的大小比较和通分奠定基础. 复习旧知 1.因数和倍数的意义: 在a×b=c(a,b, ...
- python求两数最大公因数_使用辗转相除法求两个数的最大公因数(python实现)
数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除a,记做b|a. 性质1:如果c|a,c|b,且对于任意的整数m,n,则有c| ...
- python辗转相除_使用辗转相除法求两个数的最大公因数(python实现)
数学背景: 整除的定义: 任给两个整数a,b,其中b≠0,如果存在一个整数q使得等式 a = bq 成立,我们就说是b整除a,记做b|a. 性质1:如果c|a,c|b,且对于任意的整数m,n,则有c| ...
最新文章
- 推荐一些优秀的JavaScript开发框架
- boost::container模块实现虚拟测试分配器的程序
- Digg:私人制造的时代
- English sentences
- Redis(案例五:Set数据)
- MySQL搭建系列之多实例
- 调查了 2 万多名 Python 开发者,有了这些发现!
- 理解C语言——从小菜到大神的晋级之路(1)——引言:C语言的前世今生
- matlab中的矩阵元素错位,matlab – 如何将矩阵中较弱元素附近的弱元素归零?
- AXure RP8 破解码
- Eucalyptus云之面纱
- 图文详解YUV420数据格式
- 怎样通过计算机修改蓝牙音箱,蓝牙音箱怎么连接电脑(图文教程)
- 网易公开课 计算机专业课程
- The name `AssetDatabase' does not exist in the current context
- 花了一年时间开发的YBC管型三维预览控件
- 2019领克车展 Max Co币机诞生记
- 易语言服务器取cookie,易语言取设COOKIES的代码
- uni--ReferenceError plus is not defined
- linux运维是什么
热门文章
- Waifu2x-Extension-GUI 人工智能无损放大与降噪(超分辨率) 图片 GIF 视频 v1.61.3 更新
- KMP讲解(自制动图)
- 《程序员成长历程的四个阶段》
- 解决百度Ueditor编辑器表格不显示边框问题
- 计算机基础文化的读书报告,计算机导论读书报告样稿.doc
- 一个简单的HTML网页(千与千寻电影) 大二学生网页设计与制作 电影主题网页制作
- 网页视频播放器代码总结大全
- 外置MOS管平均电流型LED降压恒流驱动
- c语言中gets全拼,25英文【25英文英语头条】- 25英文知识点 - 中企动力
- 顺腹式呼吸与逆腹式呼吸的功效及选用(转)