- 初始条件设置 —— 通常是重复执行的 计数器
-
- while 条件(判断 计数器 是否达到 目标次数):
- 条件满足时,做的事情1
- 条件满足时,做的事情2
- 条件满足时,做的事情3
- ...(省略)...
-
- 处理条件(计数器 + 1)
-
注意:
注意:循环结束后,之前定义的计数器条件的数值是依旧存在的
由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续执行,程序无法终止!
- start = 2
- while start < 10:
- print(start)
- start += 1
-
- end = 9
- while end > 1:
- print(end)
- end -= 1
-
- while True:
- # 输入分数
- score = input("请输入分数【整数】:")
- # 如果输入q为退出
- if score == "q":
- break
- # 将输入的分数转为整数
- if int(score) >= 90:
- print('excellent')
- elif int(score) >= 80:
- print ('good')
- elif int(score) >= 60:
- print ('passed')
- else:
- print ('failed')
-
在控制台连续输出五行*,每一行星号的数量依次递增
- # 1. 定义一个计数器变量,从数字1开始,循环会比较方便
- row = 1
-
- while row <= 5:
-
- print("*" * row)
-
- row += 1
-
知识点对print函数的使用做一个增强
- 在默认情况下,print函数输出内容之后,会自动在内容末尾增加换行
- 如果不希望末尾增加换行,可以在print函数输出内容的后面增加, end=""
- 其中""中间可以指定print函数输出内容之后,继续希望显示的内容
- # 向控制台输出内容结束之后,不会换行
- print("*", end="")
-
- # 单纯的换行
- print("")
-
- row = 1
-
- while row <= 5:
-
- # 假设 python 没有提供字符串 * 操作
- # 在循环内部,再增加一个循环,实现每一行的 星星 打印
- col = 1
-
- while col <= row:
- print("*", end="")
-
- col += 1
-
- # 每一行星号输出完成后,再增加一个换行
- print("")
-
- row += 1
-
物理行:程序员编写代码的行。
逻辑行:python解释器需要执行的指令。
建议一个逻辑行在一个物理行上。
- # 3个物理行 3个逻辑行
- a = 1
- b = 2
- c = a + b
-
如果一个物理行中使用多个逻辑行,需要使用分号;隔开。
- # 1个物理行 3个逻辑行
- a = 1;
- b = 2;
- c = a + b
-
如果逻辑行过长,可以使用隐式换行或显式换行。
- # 3个物理行 1个逻辑行
- d = a + \
- b + \
- c
-
隐式换行:所有括号的内容换行,称为隐式换行
括号包括: () [] {} 三种
- # 隐式换行
- d = (a + b +
- c)
-
显式换行:通过折行符 \ (反斜杠)换行,必须放在一行的末尾,目的是告诉解释器,下一行也是本行的语句。
作用:
用来遍历可迭代对象的数据元素。可迭代对象是指能依次获取数据元素的对象,例如:容器类型。
示意图:
语法:
- for 变量列表 in 可迭代对象:
-
- 语句块1
-
- else:
-
- 语句块2
-
说明:
else子句可以省略。 在循环体内用break终止循环时,else子句不执行。
- message = "python"
- for item in message:
- print(item)
-
作用:
用来创建一个生成一系列整数的可迭代对象(也叫整数序列生成器)。
- 语法:range(开始点,结束点,间隔)
-
示意图:
说明:
函数返回的可迭代对象可以用for取出其中的元素
返回的数字不包含结束点
开始点默认为0
间隔默认值为1
- # 整数生成器:产生一个范围内的整数
- # 开始值 结束值(不包含) 变化量
- for item in range(0, 5, 1):
- print(item) # 0 1 2 3 4
- # 结束值(开始值默认为0,变化量默认为1) 012345
- for item in range(6):
- print(item)
- # 开始值,结束值 2345
- for item in range(2,6):
- print(item)
-
- # 练习1:显示0 1 2
- for item in range(3):
- print(item)
- # 练习2:显示6 7 8 9 10
- for item in range(6,11):
- print(item)
- # 练习3:显示2 4 6 8
- for item in range(2,9,2):
- print(item)
- # 练习4:显示9 8 7 6 5 4 3
- for item in range(9,2,-1):
- print(item)
- # 练习5:显示-1 -2 -3 -4 -5 -6
- for item in range(-1,-7,-1):
- print(item)
-
- sum = 0
- for number in range(1, 101):
- # 不满足条件则跳过
- if number % 3 != 0:
- continue # 跳过(当前元素,继续循环)
- sum += number
- print(sum)
-
- import random
- score = 0
- for __ in range(3):
- number01 = random.randint(1, 100)
- number02 = random.randint(1, 100)
- message = str(number01) + "+" + str(number02) + "=?"
- input_number = int(input(message))
- score += 10 if input_number == number01 + number02 else -5
- print("总分:"+str(score))
-
语法:
- del 变量名1, 变量名2
-
作用:
用于删除变量,同时解除与对象的关联关系.如果可能则释放对象。
自动化内存管理的引用计数:
每个对象记录被变量绑定(引用)的数量,当为0时被销毁。
- a=1 # 对象 1 被 变量a引用,对象1的引用计数器为1
- b=a # 对象1 被变量b引用,对象1的引用计数器加1
- c=a #1对象1 被变量c引用,对象1的引用计数器加1
- del a #删除变量a,解除a对1的引用
- del b #删除变量b,解除b对1的引用
- print(c) #最终变量c仍然引用1
-
- del删除的是变量,而不是数据。
-