大爽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 简单使用
字符串输出
题目:用循环和字符串的基础操作,实现以下输出
A
AA
AAA
AAAA
AAAAA
示例代码
for i in range(5):
print("A"*(i+1))
2的n次幂表
题目:用循环和占位符,输出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个整数的和,即
$1+2+3 + \dots + 100 $
期望输出
5050
示例代码
s = 0
for i in range(100):
s += i + 1
print(s)
求和2
使用循环计算以下运算的和
期望输出
5.187377517639621
示例代码
s = 0
for i in range(100):
s += 1 / (i + 1)
print(s)