程序的三大流程:
- 顺序–从上向下,顺序执行代码
- 分支–根据条件判断,决定执行代码的分支
- 循环–让特定代码重复执行
1. 顺序
从上到下依次执行,这个其实没什么难点。
2.分支语句 (条件语句)
最常见的就是if --else
if - elif -else 语句以及缩进部分是一个完整的代码块
if 要判断的条件:
条件成立时,要做的事
else:
条件不成立时,要做的事情
#根据成绩来分类
scale = input("请输入一个成绩")
scale = float(scale)
if scale>=0:
if scale>=90:
print("成绩为优秀")
elif scale>=80:
print("成绩为良好")
elif scale>=60:
print("中等")
else:
print("不及格")
在此给大家补充一下逻辑运算符
与 and
或 or
非 not
牛刀小试
#案例一:
#定义一个整数变量,判断年龄是否正确
#要求人的年龄在0-120之间
age = int(input("请输入年龄"))
if age>0 and age<120:
print(age)
else:
print("年龄不正确")
#案例二:
#定义两个整型变量
Python_score=89
c_score = 90
#要求只要有一门成绩>60分就算合格
if Python_score>60 or c_score>60:
print("合格")
else:
print("成绩不合格")
#案例三:
is_employee = True
if not is_employee:
print("不是本公司的员工,不可以进入")
通常希望某个条件不满足时,执行一些代码,可以使用not,
如果需要拼接复杂的逻辑计算条件,同样也有可能使用到not.
2.1 Python中的随机数
#先导入模块再调用
import random
random.randint(a,b) # 返回[a,b]之间的数,包含a和b
注意:
在导入工具包的时候,应该将导入的语句,放在文件的顶部,因为,这样
可以方便下方的代码,在任何需要的时候,使用工具包中的工具。
注意:
这些随机函数不能直接调用,例如:random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
import random
random.random()
uniform() 方法将随机生成下一个实数,它在 [x,y] 范围内。法
import random
random.uniform(x, y)
x -- 随机数的最小值。
y -- 随机数的最大值。
牛刀小试
#案例一————火车票、安检
# 定义一个布尔类型的变量has_ticket 表示是否有车票
has_ticket = True
# 定义整型变量knife_length 表示刀的长度,单位:厘米
knife_length = 21
'''首先检查是否有车票,如果有,才允许进入安检
安检时,需要检查刀的长度,判断是否超过20厘米
如果超过20厘米,提示刀的长度,不允许上车
如果没有超过20厘米,则可以通过安检
如果没有车票,不允许进入'''
if has_ticket:
print("车票检查通过,准备开始安检")
if knife_length>20:
print("刀的长度为%.2f,不能通过安检"%knife_length)
else:
print("安检通过,可以上车")
else:
print("请购买车票")
#案例二————石头剪刀布
player = int(input("玩家请出拳:拳头=1,布=2,剪刀=3"))
computer = random.randint(1,3)
print("玩家出的是%d-电脑出的是%d"%(player,computer))
#比较胜负
#1.石头 胜 剪刀
#2.剪刀 胜 布
#3.布 胜 石头
if ((player==1 and computer==3)
or (player==3 and computer==2)
or (player==2 and computer==1)):
print("玩家胜利")
elif player==computer:
print("平局")
else:
print("电脑胜利")
3.循环语句
3.1 while循环
while 条件(判断 计数器是否达到 目标次数):
条件满足时,做的事情1
条件满足时,做的事情2
。。。
处理条件(计数器+1)
例如:
s=0
while s<=5:
print(s)
s += 1
注意:while语句以及缩进部分是一个完整的代码块
在程序计数中,从0开始计数。所以要养成一个好的习惯。
3.1.1 嵌套循环
案例一:打印小星星
每一行要打印的星星就是和当前的行数是一致的,增加一个小的循环,专门负责当前行中,每一列的星星显示
row = 1
while row<=5:
print("*" * row)
row += 1
结果如下所示:
*
* *
* * *
* * * *
* * * * *
改进版——加入嵌套循环
row1 = 1
while row1 <= 5:
col = 1 #表示列
while col <= row1:
print("*",end="")
col +=1
print() # 这行代码的目的,就是在一行星星输出完成之后,添加换行。
row1 += 1
关键字——end
关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下:
a, b = 0, 1
while b < 1000:
print(b, end=',')
a, b = b, a+b
结果如下:
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
3.1.2 字符串中的转义字符
\t在控制台输出一个制表符,协助在输出文本时,垂直方向保持对齐
\n在控制台输出一个换行符
print("1\t2\t3")
print("10\t20\t30")
print("hello\npython")
1 2 3
10 20 30
hello
python
牛刀小试——打印九九乘法表
i = 1
while i <=9:
j = 1
while j <= i:
result = i * j
print("%d * %d = %d" %(j,i,result),end=" ")
j += 1
print()
i += 1
3.1.3 break 和 continue
break:当某一条件满足时,退出循环,不再执行后续重复的代码
continue:某一条件满足时,不执行后续重复的代码。
简单的说,break 语句可以跳出 for 和 while 的循环体
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环
3.2 for循环
for i in ...
有时for 也和 else连用,一会就可以见到。
注意:当for循环中使用了break语句时,表示用于跳出当前循环体
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
if site == "Runoob":
print("菜鸟教程!")
break
print("循环数据 " + site)
else:
print("没有循环数据!")
print("完成循环!")
结果为:
循环数据 Baidu
循环数据 Google
菜鸟教程!
完成循环!
3.2.1 for 循环与 else 的使用
for 变量 in 集合:
循环体代码
else:
没有通过break退出循环,循环结束后,会执行的代码。
示例:
#定义一个列表存储字典,循环内部使用了break,如果执行,则退出循环,else下方的代码不会执行
Students = [
{"name":"小明"},
{"name":"小曾"}
]
name = "小曾"
for name_str in Students:
print(name_str)
if name_str["name"] == name:
print("找到了%s" %name)
break
else:
print("循环结束,没有找到")