概述
文章目录
- 三大流程控制
- 顺序、分支、循环
- 一、顺序
- 二、分支(有条件)
- 还是一些案例,分支
- 案例一:闰年检测计算器
- 案例二:偶数判断器
- 案例三:解一元二次方程
- 三、循环
- 两个案例,循环
- 案例一:打印九九乘法表
- 案例二、防黑客暴力破解的用户登录系统
三大流程控制
顺序、分支、循环
一、顺序
按步骤一步一步执行
案例:
用户按圆的半径计算圆的周长和面积circle.py
输入圆的半径:5.3
输出:半径为5.3cm的圆的周长为33.3,面积为88.2
代码:
import math #导入数学模块
r = float(input("输入圆的半径"))
c = 2 * math.pi * r #math.pi表示数学中的Π
s = math.pi * pow(r,2) #pow()函数求次方
二、分支(有条件)
1、if(表达式)
age = int(input("年龄是:"))
if(age < 18): #条件,满足表达式,执行下面语句
print("未成年")
注意 : 和 代码块缩进
2、if-else(有两种情况)
name = input("name:")
password = input("password:")
if(name == 'westos' and password = '123'):
print("用户%s登录成功"%(name)) #满足表达式,执行这句
else:
print("用户%s登录失败"%(name)) #不满足表达式,执行这句
3、if -elif…-else(有多种情况)
案例:
提示学生输入平均成绩,判断学生成绩等级 score.py
输入平均成绩:100
输出:学生的成绩等级为A
score >= 85 | A等级 |
---|---|
70 <= score < 85 | B等级 |
60 <= score < 70 | C等级 |
score < 60 | D等级 |
代码:
score = float(input("输入平均成绩:"))
if(score >= 85):
print("学生的成绩等级为A")
elif (70 <= score < 85):
print("学生的成绩等级为B")
elif (60 <= score < 70):
print("学生的成绩等级为C")
elif(score < 60):
print("学生的成绩等级为D")
else:
print("成绩无效")
4、三元运算符
(语句1) if(表达式) else(语句2)
满足表达式执行语句1,不满足表达式执行语句2
a = 10
b = 5
print(max = a if(a > b) else min = b) #如果a>b,输出max=a,否则,输出min=b
5、嵌套
在一个分支中又分出一个分支
在一个 if - else 中,又包含一个 if - else
案例:
用户登录系统
输入用户名,密码正确,登录成功
输入用户名错误,提示用户不存在
输入用户名正确,密码错误,提示密码错误
import getpass
print("**********用户登录***********")
name = input("输入用户名:")
password = getpass.getpass("输入密码:")
if (name == 'westos'):
if(password == '123'):
print("%s登录成功"%(name))
else:
print("%s登录失败,密码输入错误"%(name))
else:
print("该用户不存在")
还是一些案例,分支
案例一:闰年检测计算器
需求:
随机生成一个1900~2000之间的年份,判断给定的年份是否是闰年。
规则:
一个闰年就是能被4整除但是不能被100整除 或者能被400整除。
生成随机数:
需要用到python中的 random 模块
常用函数:
random.random() :随机生成一个[0,1)的浮点数
random.uniform(a,b) :随机生成[a,b]之间的浮点数
random.randint(a,b) :随机生成[a,b]之间的整数
random.choice(‘saveefd’) :随机从序列中选取一个元素
random.shuffle([1,2,3,4,5,6]) :将列表里的元素顺便随机打乱
代码(用if - else):
import random #导入模块
year = random.randint(1900,2000) #随机生成一个1900~2000的整数
if((year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) ):
print("%d年份是闰年"%(year))
else:
print("%d年份不是闰年"%(year))
代码(用三元运算符):
import random
year = random.randint(1900,2000)
is_leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) #用一个变量把语句存起来
print("%d年份是闰年"%(year) if(is_leap) else "%d年份不是闰年"%(year))
案例二:偶数判断器
需求:
随机生成一个0~100之间的整数,判断是否为偶数.
规则:
偶数是能够被2整除的整数,0也是一个特殊的偶数
代码:
import random
number = random.randint(0,100)
if(number % 2 == 0):
print("数值%d是偶数"%(number))
else:
print("数值%d不是偶数"%(number))
import random
number = random.randint(0,100)
is_even = (number % 2 == 0)
print(数值%d是偶数"%(number) if (is_even) else "数值%d不是偶数"%(number))
案例三:解一元二次方程
需求:求解一元二次方程,用户依次输入a,b,c对应的值
规则:
求平方根用需要用到python中的 math 模块
用 math.sqrt() 函数来求平方根
代码:
import math #导入模块
a = float(input("输入a:"))
b = float(input("输入b:"))
c = float(input("输入c:"))
delta = pow(b,2) - 4*a*c #pow()函数,计算次方 b^2
if(delta = 0):
x1 = (-b + math.sqrt(delta)) / 2*a #math.sqrt()函数求平方根
print("方程有一个解:x1=%.1f"%(x1))
elif(delta > 0):
x1 = (-b + math.sqrt(delta)) / 2*a
x2 = (-b - math.sqrt(delta)) / 2*a
print("方程有两个解:x1=%.1f,x2=%.1f"%(x1,x2))
else:
print("方程无解")
三、循环
1、while
(1)计数循环
while (表达式):
语句(语句缩进)
满足表达式,一直循环执行语句,直到表达式为假
要执行的语句都是缩进的
count = 0
while (count < 9):
print("the index is:",count+1)
count += 1
(2)死循环
while (True): #条件一直为真,一直循环执行下面的语句,按键ctrl+d退出
cmd = input("cmd>>>")
用户一直输入命令,打印命令的执行结果
import os #导入os模块,封装了操作系统常用的方法。如:创建/删除文件,执行shell命令
while True:
cmd = input("cmd>>")
os.system(cmd)
2、for(生成器时详细说)
遍历序列成员,
for 元素 in 集合:
语句 (语句要缩进)
#序列类型
for item in 'hello' :
print("字符显示:",item) #分别打印出字符 h,e,l,l,o
#range()内置函数
for item in range(10):
print("变量显示:",item)
range() 内置函数用法
返回一个列表
range(stop) | 从0开始到stop-1结束 ] |
---|---|
例:range(4) | [0,1,2,3] |
range(start,end) | 从start开始,到end-1结束 |
例:range(1,6) | [1,2,3,4,5] |
range(start,end,step) | 从start开始,到end-1结束,步长是step |
例:range(0,10,2) | [0,2,4,6,8] |
案例:
需求:
求1~100之间所有偶数的和
代码:
sum = 0
for num in range(2,101,2):
sum += num
print("偶数和:",sum)
需求:用户输入一个整形数,求该数的阶乘
3!=3 * 2* 1
代码:
number = int(input("输入一个整形数:"))
result = 1
for index in range(1,number+1):
result *= index
print(result)
number = int(input("输入一个整形数:"))
index = 1
result = 1
while (index <= number):
result *= index
index += 1
print(result)
3、跳出循环的语句
break
用来终止循环语句,就算条件没到false或者序列没递归完,也要停止执行循环语句。
for count in range(10):
if count == 2:
break # 跳出循环,不再执行循环语句
print(count) #输出0,1
continue
跳出当前循环的剩余语句,然后继续下一轮循环
for count in range(10):
if count == 2:
continue # 跳出本次循环,不执行下面的语句,继续循环
print(count) #0,1,3,4,5,6,7,8,9
两个案例,循环
案例一:打印九九乘法表
下三角:
for i in range(1,10): #i是外层循环,循环9次
for j in range(1,i+1): #j是内层循环,每一层循环i次
print("%d*%d=%d"%(j,i,i*j),end = ' ')
print('n') #循环完一个外层,就要换行一次
上三角:
for i in range(9,0,-1):
for j in range(1,i+1):
print("%d*%d=%d"%(j,i,i*j),end = ' ')
print('n')
还记得当年拿c写九九乘法表,写了一大堆。。。。
案例二、防黑客暴力破解的用户登录系统
需求:
根据输入用户名和密码,判断用户名和密码是否正确,为了防止暴力破解,登录仅有三次机会,如果超过三次,报错提示。
代码:
import getpass
num = 0
while (num < 3):
print("用户进行第%d次登录"%(num))
name = input("请输入用户名:")
password = getpass.getpass("请输入密码:")
if(name == 'westos' and password == '1234'):
print("%s登录成功"%(name))
break
else:
print("%s登录失败"%(name))
num += 1
else:
print("尝试次数超过三次,请稍后再试") # while-else的结合是python中特有的
经过一天的学习,简直身心俱疲,OK,我们来搞一个好玩的
太阳花绘制,惊不惊喜,意不意外
Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
命令 | 说明 |
---|---|
turtle.pensize(width) | 绘制图形时的宽度 |
turtle.pencolor() | 画笔颜色 |
turtle.fillcolor(colorstring) | 绘制图形的填充颜色 |
turtle.color(color1,color2) | 同时设置pencolor=color1,fillcolor=color2 |
turtle.filling() | 返回当前是否在填充状态 |
turtle.begin_fill() | 准备开始填充图片 |
turtle.end_fill() | 填充完成 |
turtle.hideturtle() | 隐藏箭头显示 |
turtle.showturtle() | 与hideturtle对应 |
命令 | 说明 |
---|---|
turtle.forward(distance) | 向当前画笔方向移动distance像素长 |
turtle.backward(distance) | 向当前画笔相反方向移动distance像素长度 |
turtle.right(degree) | 顺时针旋转degree° |
turtle.left(degree) | 逆时针旋转degree° |
turtle.pendown() | 移动时绘制图形,缺省时也为绘制 |
turtle.goto(x,y) | 将画笔移动到坐标为x,y的位置 |
turtle.penup() | 移动时不绘制图形,提起笔,用于另起一个地方绘制时用 |
turtle.speed(speed) | 画笔绘制的速度范围[0,10]整数 |
turtle.circle() | 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆 |
太阳花绘制:
- 设置画笔颜色和填充颜色, 并设置画笔移动速度
- turtle.begin_fill()准备开始填充图形
- 向当前画笔方向移动distance像素长为200
- 逆时针(向左)移动170°
- 循环3、4步50次
- turtle.end_fill()实现填充完成
- turtle.done()完成绘制
import turtle
#1. 设置画笔颜色和填充颜色, 并设置画笔移动速度
turtle.color('green','red')
turtle.speed(10)
#2. turtle.begin_fill()准备开始填充图形
turtle.begin_fill()
#5.循环3、4步50次
for num in range(50):
#3. 向当前画笔方向移动distance像素长为200
turtle.forward(200)
#4. 逆时针(向左)移动170°
turtle.left(170)
#6.turtle.end_fill()实现填充完成
turtle.end_fill()
#7.turtle.done()完成绘制
turtle.done()
想画啥样画啥样
最后
以上就是顺利期待为你收集整理的python基础—03三大流程控制:顺序,分支,循环三大流程控制还是一些案例,分支两个案例,循环的全部内容,希望文章能够帮你解决python基础—03三大流程控制:顺序,分支,循环三大流程控制还是一些案例,分支两个案例,循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复