大爽Python入门教程 1-3 简单的循环与判断
大爽Python入门公开课教案
点击查看教程总目录
这里只初步认识下循环和判断,以便于我们去实现一些简单的计算。
循环和判断的详细知识和细节,我们将在后面的章节(大概是第三章)展开阐述。
1 初步了解
在本系列课程的准备工作的第二节 感受IDE中,展示过以下代码
for i in range(10):
if i % 2 == 0:
print(i)
其输出为
0
2
4
6
8
当时只是让大家看这个代码的样子和了解敲代码的感觉,
这里来解释下这个代码。
简单循环
for i in range(n)的意思是从0遍历到n(不包含n)。
更通俗一点来说,其效果是:
循环n次,过程中i从0增加到n-1。
示例
>>> for i in range(3):
... print("Say important things three times")
...
Say important things three times
Say important things three times
Say important things three times
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
简单判断
if i % 2 == 0:的作用是判断i除2的余数是否等于0。
if后面接判断语句,判断成功后,执行:下面缩进的语句,不成功则跳过。
这里的==是比较运算符,判断两个东西是否相等。
if后面的判断语句常会用到比较运算符有:
!=: 不等于>: 大于>=: 大于等于<: 小于<=: 小于等于
代码示例
>>> x = 5
>>> if x > 0:
... print("x is greater than 0")
...
x is greater than 0
>>> if x > 10:
... print("x is greater than 10")
...
>>> if x % 2 == 0:
... print("x is even")
...
>>> if x % 2 == 1:
... print("x is odd")
...
x is odd
补充翻译:
even: 偶数
odd: 奇数
2 缩进
决定范围
在上面的for或if语句中,其冒号:后面的代码都有缩进。
缩进声明了for或if的管辖范围的。
for或if只管它下面有缩进的地方。
没有缩进的,就代表超出了其管辖范围。
或者说,跳出了for或if。
示例
比如以下的python代码
for i in range(3):
print("print 3 times: %s" % i)
print("print once")
其输出为
print 3 times: 0
print 3 times: 1
print 3 times: 2
print once
再比如以下的python代码
for i in range(3):
if i % 2 == 0:
print("%s is even" % i)
print(i)
其输出为
0 is even
0
1
2 is even
2
细节说明
在python里面,规范的缩进是用四个空格作为一个缩进,
在大多数IDE里面写python文件(比如atom或pycharm),使用Tab键往往会自动给你去生成四个空格。
这种情况使用Tab键和四个空格没区别。
但有的时候,从网上复制的代码,可能缩进是Tab键,你本地的是四个空格的话,
代码放在一起会冲突。
因为缩进方式不一致,报错一般为IndentationError
这个时候要统一缩进格式。
一般方法是,先去掉它的缩进,再按原结构加上缩进。
快捷方法
选中一段代码(可以是多行的),
按Shift+Tab可以一起左移(去掉一级缩进),
按Tab可以一起右移(添加一级缩进),
3 简单使用
2的n次幂表
题目:张三是一个经常和2的次方打交道的人,他需要一张2的幂表,展示2的n次幂(n<=10)。
期望输出:
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024
示例代码
for i in range(11):
v = 2 ** i
print("2^%s = %s" % (i, v))
递增求和
上一题的进阶。
题目:
某种物品时累进计费的(且限购八个),
买第1个的价格是100元。
之后每个,都在上一个的基础上涨价25%(结果四舍五入取整)。
即第2个的价格是125元。
第3个的价格是125(1+25%)=156
第4个的价格是156(1+25%)=195,
依此类推...
请展示依次购买时的:
购买个数(n),对应单价(第n个的单价),和总价
提示:可使用round()函数来取整,示例如下
>>> round(3.14)
3
>>> round(3.6)
4
期望输出:
number: 1, current price: 100, total price: 100
number: 2, current price: 125, total price: 225
number: 3, current price: 156, total price: 381
number: 4, current price: 195, total price: 576
number: 5, current price: 244, total price: 820
number: 6, current price: 305, total price: 1125
number: 7, current price: 381, total price: 1506
number: 8, current price: 477, total price: 1983
示例代码
base = 100
rise_rate = 0.25
total_price = 0
for i in range(8):
rate = (1 + rise_rate) ** i
current_price = base * rate
current_price = round(current_price)
total_price += current_price
line = "number: %s, current price: %s, total price: %s"
print(line % (i+1, current_price, total_price))
有趣的极限
题目:
\]
求n分别为100,1000,10000时S的值。
期望输出:
n=100: S=0.688172179310195
n=1000: S=0.6926474305598223
n=10000: S=0.6930971830599583
示例代码
n = 100
k = 1
s = 0
for i in range(n):
s += k / (i + 1)
k = -k
print("n=%s: S=%s" % (n, s))
n = 1000
k = 1
s = 0
for i in range(n):
s += k / (i + 1)
k = -k
print("n=%s: S=%s" % (n, s))
n = 10000
k = 1
s = 0
for i in range(n):
s += k / (i + 1)
k = -k
print("n=%s: S=%s" % (n, s))
拓展说明:
- 目前只能先这么重复着写,未来学了函数,再来优化这部分代码。
- 补充2:S的极限值为ln2,值为0.6931471805599453......
>>> import math
>>> math.log(2)
0.6931471805599453
S的极限值证明:
大爽Python入门教程 1-3 简单的循环与判断的更多相关文章
- 大爽Python入门教程 1-1 简单的数学运算
大爽Python入门公开课教案 点击查看教程总目录 1 使用pycharm建立我们的第一个项目 打开pycharm,点击菜单栏,File->New Project 在Location(项目地址) ...
- 大爽Python入门教程 3-1 布尔值: True, False
大爽Python入门公开课教案 点击查看教程总目录 1 布尔值介绍 从判断说起 回顾第一章介绍的简单的判断 >>> x = 10 >>> if x > 5: ...
- 大爽Python入门教程 3-2 条件判断: if...elif..else
大爽Python入门公开课教案 点击查看教程总目录 简单回顾if 回顾下第一章的代码 >>> x = 5 >>> if x > 0: ... print(&q ...
- 大爽Python入门教程 2-3 字符串,列表,字典
大爽Python入门公开课教案 点击查看教程总目录 除了通用的序列方法, 列表和字符串还有些自己的专属方法. 后面介绍有些是英中文对照介绍(英文来自官方文档), 便于大家更深入的去理解其意思. 灵活的 ...
- 大爽Python入门教程 2-1 认识容器
大爽Python入门公开课教案 点击查看教程总目录 1 什么是容器 先思考这样一个场景: 有五个学生,姓名分别为: Alan, Bruce, Carlos, David, Emma. 需要给他们都打一 ...
- 大爽Python入门教程 1-4 习题
大爽Python入门公开课教案 点击查看教程总目录 1 [思考]方向变换 小明同学站在平原上,面朝北方,向左转51次之后(每次只转90度), 小明面朝哪里?小明转过了多少圈? (360度为一圈,圈数向 ...
- 大爽Python入门教程 1-5 答案
大爽Python入门公开课教案 点击查看教程总目录 1 方向变换 >>> 51//4 12 >>> 51%4 3 答: 向左转51次之后, 小明面朝东方, 转过了1 ...
- 大爽Python入门教程 1-2 数与字符串
大爽Python入门公开课教案 点击查看教程总目录 1 整数与浮点数 整数大家都知道,比如1, 2, 10, 123, 都是整数int. 浮点数是什么呢? 上一节的除法运算,不知道有没有人注意到,其结 ...
- 大爽Python入门教程 0-2 什么是IDE?python选什么IDE好?
大爽Python入门公开课教案 点击查看教程总目录 一 感受IDE 什么是IDE? 在这里,我并不想直接给出一个回答, 因为这个回答对初学者来说,可能有些抽象. 我想先带大家感受下IDE. 1 比较不 ...
随机推荐
- PyCharm中文下载与安装教程【2021年更新】
第一章:下载与安装 1.1 [版本介绍]多个版本的介绍与选择 Jetbrain 公司是一家专业的 IDE 生产商,只要是市面上主流的编程语言,Jetbrain 都有相应的产品. 比如:Python ...
- 从0到1告诉你搭建完整Python+requests接口自动化测试框架!
前言 很多小伙伴不知道什么是框架?框架有哪些东西? 一步步从需求分析到报告生成告诉你如何搭自动化建框架. 学完unittest后这里基本上可以搭建一个简易的项目框架了,我们可以用一条run_main. ...
- 解决联想R720双系统Ubuntu16.04的无线网卡开启问题及信号不稳定
问题一:1.问题描述笔记本型号:Lenovo r720笔记本(i5-7300hq,gtx1060 maxq 6g),默认装入Win10系统,然而当装入Ubuntu16.04双系统时,会出现无线网卡(型 ...
- UE4蓝图AI角色制作(三)
接上一节 6. 寻路网格体代理 通过允许配置多个"代理",虚幻引擎使得用户能够轻松为大小各异的AI创建寻路网格体.首先,选中世界大纲视图中的"RecastNavMesh& ...
- efcore分表分库原理解析
ShardingCore ShardingCore 易用.简单.高性能.普适性,是一款扩展针对efcore生态下的分表分库的扩展解决方案,支持efcore2+的所有版本,支持efcore2+的所有数据 ...
- 基于python的pixiv爬虫
基于python的pixiv爬虫 1.目标 在和朋友吹逼过程中,聊到qq群机器人,突发奇想动手做一个p站每日推荐色图的色图机,遂学习爬虫. 目标: 批量下载首页推荐色图. 由于对qq机器人不熟,先利用 ...
- 5-基本的sql查询以及函数的使用
基本SQL查询语句以及函数的使用 格式元素 描述 YYYY 四位的年份 MONTH 月份的英文全称 MON 月份的英文简写 MM 月份的数字表示 DD 日起的1-31数字表示 D 星期几的数字表示1- ...
- Geostatistical Analyst Tools(Geostatistical Analyst 工具)
Geostatistical Analyst 工具 1.使用地统计图层 # Process: GA 图层至格网 arcpy.GALayerToGrid_ga("", 输出表面栅格, ...
- CF850E Random Elections 题解
题目传送门 题目大意 没法描述,过于繁杂. 思路 果然自己是个菜鸡,只能靠读题解读题,难受极了,其实不是很难自己应该做得出来的....哎.... 不难发现可以统计 \(A\) 获胜的情况乘上 \(3\ ...
- 微信小程序_快速入门02
01我们学习了环境的准备和简单的demo,现在是时候来学习简单的页面编写了,首先我们来学习一些常用的基础标签: 一.view盒子,就是类似于div的盒子,可以用来存其他元素的容器. 二.text 文本 ...