一、实验目的
- 循环语句
- 循环控制
- print() 函数的 end 参数
- 列表
- 索引
- 切片
- 元组
二、知识要点
1.循环语句
循环类型 | 描述 |
---|---|
while 循环 | 在给定的判断条件为 true 时执行循环体,否则退出循环体。 |
for 循环 | 重复执行语句 |
嵌套循环 | 你可以在while循环体中嵌套for循环 |
- while循环
while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:
1 | while 判断条件(condition): |
在Python中也可以使用
while…else
进行循环,当循环条件为false
时执行else
语句块,而当程序进行无线循环时可输入Ctrl+C
终止。
- for循环
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。语法格式为:
1 | for iterating_var in sequence: |
通常有如下三种形式:
- 输出字符串中的每一个字符
- 通过序列索引迭代
- 循环使用 else 语句
2.循环控制语句
控制语句 | 描述 |
---|---|
break 语句 | 在语句块执行过程中终止循环,并且跳出整个循环 |
continue 语句 | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
pass 语句 | pass是空语句,是为了保持程序结构的完整性。 |
break是结束整个循环而continue是结束本次循环继续下次循环。
3.列表
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:1
2
3list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
3.1常用列表操作:
- 访问列表中的值
1 | list1 = ['physics', 'chemistry', 1997, 2000] |
- 更新列表(
append()
):
1 | list = [] ## 空列表 |
- 替换列表元素
1 | letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] |
- 删除列表元素(
del
)
1 | list1 = ['physics', 'chemistry', 1997, 2000] |
- Python列表截取
1 | L=['Google', 'Runoob', 'Taobao'] |
3.2 列表所涉及的方法
方法 |
---|
list.append(obj) 在列表末尾添加新的对象 |
list.count(obj) 统计某个元素在列表中出现的次数 |
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
list.insert(index, obj) 将对象插入列表 |
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
list.remove(obj) 移除列表中某个值的第一个匹配项 |
list.reverse() 反向列表中元素 |
list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序 |
3.3 列表脚本操作符
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
[‘Hi!’] * 4 | [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |
3.4 列表有关函数
函数 |
---|
cmp(list1, list2) 比较两个列表的元素 |
len(list) 列表元素个数 |
max(list) 返回列表元素最大值 |
min(list) 返回列表元素最小值 |
list(seq) 将元组转换为列表 |
4.切片
有关切片问题先看一段代码:1
2
3
4
5
6
7
8num = [1, 2, 3, 4, 5, 6, 7]
print(num[1:8:1]) #越界输出
print(num[1:6:2]) #步长变化输出
print(num[-1:-6:-1]) #逆序输出
print(num[-6:-1]) #正序输出
print(num[1:-1]) #混合输出
print(num[1:]) #索引为1之后的所有元素
print(num[:-1]) #索引为-1之前的所有元素
结果为:1
2
3
4
5
6
7[2, 3, 4, 5, 6, 7]
[2, 4, 6]
[7, 6, 5, 4, 3]
[2, 3, 4, 5, 6]
[2, 3, 4, 5, 6]
[2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6]
如上面的代码与图片,终点是分清n维列表中的第一个元素索引为0
,最后一个元素索引为n-1
或-1
,而对于起点和终点需要记住包括起点而不包括终点。
三、实验内容
1.for循环的常用形式
- 代码:
1 | # 从字符串中提取 |
- 结果:
1 | # 从字符串中提取 |
2.break与continue的使用
- 代码:
1 | for i in range(1, 10): |
- 结果:
1 | 此时i为奇数且不等于5,直接进行下一次循环 |
不难看出,
continue
后的print("i=", i)
并没有执行,而当执行break
时程序直接结束了本层循环
3.双层循环中的break
- 代码:
1 | n = 0 |
- 结果:
1 | 第一次循环语句共执行了: 1 次 |
break只会结束掉本层循环
四、实验结果
代码:
1 | str_1 = str(input("Please input a string:")) |
结果:1
2Please input a string: hello world
hello world
2.分别使用while、for计算如下问题:
1 | #for |
- 结果:
1 | Please input an integer:0.5 |
3.乘法表
- 代码:
1 | # for |
- 结果:
1 | 1 2 3 4 5 6 7 8 9 10 |
4.斐波那契(Fibonacci)数列
- 代码:
1 | Num_1 = int(input("请输入一个整数:")) |
- 结果
1 | 请输入一个整数:10 |
5.棍子游戏
- 代码:
1 | sticks = 21 |
- 分析:
本题目中在题目中的条件下,先手的人必输,因为后手的人只需凑够(21-1)的因数5即可,最后1根一定是先手的人拿到。
下一篇:4.控制流if-else
上一篇:6.数据结构
目 录:Python学习