参考教程:https://www.liaoxuefeng.com/wiki/1016959663602400
参考博客:刻意练习:Python基础 – Task02. 条件与循环(原创: LSGOGroup 老马的程序人生)
条件语句
- if语句
条件表达式可以通过布尔操作符 and,or和not 实现多重条件判断。
例:
if 2 > 1 and not 2 > 3:
print('Correct Judgement!')
# Correct Judgement!
- else
Python 使用缩进而不是大括号来标记代码块边界,因此要特别注意 else 的悬挂问题。
temp = input("不妨猜一下小哥哥现在心里想的是那个数字:")
guess = int(temp)
if guess > 8:
print("大了,大了")
else:
if guess == 8:
print("你是小哥哥心里的蛔虫吗?")
print("哼,猜对也没有奖励!")
else:
print("小了,小了")
print("游戏结束,不玩儿啦!")
elif等价于C语言中的 else if
- assert 关键词
assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。
例:
assert 3 > 7
# AssertionError
循环语句
- while
- for
一种是for…in循环,依次把list或tuple中的每个元素迭代出来,看例子:
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
for i in 'ILoveLSGO':
print(i, end=' ') # 不换行输出
# I L o v e L S G O
每次循环,iter_var 迭代变量被设置为可迭代对象 interales 的当前元素,提供给 suite_to_repeat 语句块使用。
- break 语句
- continue 语句
- pass 语句
“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。
例:
def a_func():
# SyntaxError: unexpected EOF while parsing
def a_func():
pass
循环常用函数
range()
函数,range([start,] stop[, step=1])
这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1 表示第三个参数的默认值是1。
range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。
> for i in range(1, 10, 2):
print(i)
# 1
# 3
# 5
# 7
# 9
通过list()函数可以转换为list。比如range(5)生成的序列是从0开始小于5的整数:
list(range(5))
[0, 1, 2, 3, 4]
enumerate()函数
enumerate(sequence, [start=0])
sequence – 一个序列、迭代器或其他支持迭代对象。
start – 下标起始位置。
返回 enumerate(枚举) 对象
例:
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
lst = list(enumerate(seasons))
print(lst)
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
lst = list(enumerate(seasons, start=1)) # 下标从 1 开始
print(lst)
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
用 enumerate(A) 不仅返回了 A 中的元素,还顺便给该元素一个索引值 (默认从 0 开始)。此外,用 enumerate(A, j) 还可以确定索引起始值为 j。
例:
languages = ['Python', 'R', 'Matlab', 'C++']
for language in languages:
print('I love', language)
print('Done!')
'''
I love Python
I love R
I love Matlab
I love C++
Done!
'''
for i, language in enumerate(languages, 2):
print(i, 'I love', language)
print('Done!')
'''
2 I love Python
3 I love R
4 I love Matlab
5 I love C++
Done!
'''
个人总结
犯的错误
1、inconsistent use of tabs and spaces in indentation
看似空格实则没有空格引起的:
解决方法:复制粘贴真空格
2、invalid syntax
符号错误
比如循环后面少:
Day2加油
Todd!