Python集训营45天—Day03
1. 分支结构
1.1 初步介绍
至今,我们所写的Python代码都是顺序执行,但是有时候在代码中是需要进行逻辑判断的,比如用户 输入用户名和密码,输入正确则验证通过,否则即验证失败。这个时候就会产生两个分支,而且两个分支只会有一条分支会走下去。当然,还有很多类似的场景,我们将这种结果称为 "分支结构" 或 “选择结构”。
语法格式:
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
else:
事情4
1.2 使用案例
1、用户身份验证
# -*- coding:utf-8 -*-
"""
用户身份验证
version: 0.1
author: coke
"""
username = input("请输入用户名:")
password = input("请输入密码:")
if username == 'admin' and password == '123456':
print("身份验证成功")
else:
print("身份验证失败")
输出结果
2、分段函数求值
"""
分段函数求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 < x < 1)
5x + 3 (x <= -1)
version: 0.1
Author: coke
"""
x = float(input("请输入一个数字:"))
if x > 1:
y = 3 * x - 5
elif x > -1 and x < 1:
y = x + 2
else:
y = 5 * x +3
print("f(%.2f)=%.2f"%(x,y))
输出结果
1.3 练习
1、猜拳游戏
# -*- coding:utf-8 -*-
"""
猜拳游戏
version: 0.1
author: coke
"""
import random
num = int(input("剪刀(0) 石头(1) 布(2):"))
computer = random.randint(0,2)
print("电脑出拳:%d"%computer)
if (num == 0 and computer == 2) or (num == 1 and computer == 0) or (num == 2 and computer == 1):
print("哈哈,你赢了")
elif num == computer:
print("平局,要不要再来一局")
else:
print("洗洗手,决战都天亮")
2、成绩等级转换
"""
百分制成绩转等级制成绩
90分以上 --> A
80分~89分 --> B
70分~79分 --> C
60分~69分 --> D
60分以下 --> E
Version: 0.1
Author: coke
"""
score = float(input('请输入成绩: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('对应的等级是:', grade)
2.循环结构
1.1 初步介绍
如果在程序中我们将执行一系列的重复指令,比如我想计算1 - 100的和 或者 我想输出99次 helloWorld,难道要一个个去写么,如果真是这样,那么编程的工作就太不合理了,所以,我们还需要了解一下循环结构,如果我们学会了循环结构,就可以重复的执行某些操作指令。
在Python中构造循环结构有两种做法,一种是for-in
循环,一种是while
循环。
for - in 循环
如果我们可以知道循环的次数或者是对容器的迭代(容器后面会涉及),我们会推荐for-in循环
for 临时变量 in 列表或者字符串等:
循环满足条件时执行的代码
while 循环
如果要构造不知道具体循环次数的循环结构,我们推荐使用while
循环。while
循环通过一个能够产生或转换出bool
值的表达式来控制循环,表达式的值为True
循环继续,表达式的值为False
循环结束。
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
break
:结束当前循环
continue
:用来结束本次循环,紧接着执行下一次的循环
注: break/continue只能用在循环中,除此以外不能单独使用
1.2 使用案例
1、用for循环 计算1-100 之间偶数的和
"""
用 for循环实现1-100之间的求和
version: 1.0
Author: coke
"""
#-*- coding=utf-8 -*-
sum = 0
for x in range(1,101):
if x % 2 == 0:
sum += x
print(sum)
输出结果
需要说明的是上面代码中的range
类型,range
可以用来产生一个不变的数值序列,而且这个序列通常都是用在循环中的,例如:
range(101)
可以产生一个0到100的整数序列。range(1, 100)
可以产生一个1到99的整数序列。range(1, 100, 2)
可以产生一个1到99的奇数序列,其中的2是步长,即数值序列的增量
2、不用判断 计算 1-100 之间偶数的和
"""
用 for循环实现1-100之间的求和
version: 1.0
Author: coke
"""
#-*- coding=utf-8 -*-
sum = 0
for x in range(2,101,2):
sum += x
print(sum)
3、猜数字游戏
"""
猜数字游戏
计算机出一个 1~100之间的随机数由人猜
计算机分别根据人猜的数字分别给出提示大一点/小一点/猜对了
version: 0.1
admin: coke
"""
import random
answer = random.randint(1,100)
counter = 0
while True:
counter += 1
result = int(input("请输入一个数字:"))
if answer > result:
print("大一点")
elif answer < result:
print("小一点")
else:
print("猜对了")
break
if counter > 7:
print("智商余额不足")
4、continue和break 的使用
"""
continue的使用
version: 0.1
author: coke
"""
name = "cokehaha"
for x in name:
print("----")
if x == "k":
continue
if x == "a":
break
print(x)
1.3 练习
1、输入两个正整数,计算最大公约数和最小公倍数
"""
输入两个正整数计算最大公约数和最小公倍数
version: 0.1
author: coke
"""
x = int(input('x = '))
y = int(input('y = '))
if x > y:
x, y = y, x
for factor in range(x, 0, -1):
if x % factor == 0 and y % factor == 0:
print('%d和%d的最大公约数是%d' % (x, y, factor))
print('%d和%d的最小公倍数是%d' % (x, y, x * y // factor))
break
2、打印三角形图案
"""
打印各种三角形图案
*
**
***
****
*****
*
**
***
****
*****
*
***
*****
*******
*********
version: 0.1
author: coke
"""
row = int(input('请输入行数: '))
for i in range(row):
for _ in range(i + 1):
print('*', end='')
print()
for i in range(row):
for j in range(row):
if j < row - i - 1:
print(' ', end='')
else:
print('*', end='')
print()
for i in range(row):
for _ in range(row - i - 1):
print(' ', end='')
for _ in range(2 * i + 1):
print('*', end='')
print()
Python集训营45天—Day03的更多相关文章
- Python集训营45天—Day01
目录 1. Python简介 2. 第一个Python程序 3. 知识点梳理 序言:未来是数据的世界,而python 是一门可以高效简洁处理数据的语言,博主打算花45天左右完成python学习的从0到 ...
- Python集训营45天—Day02
目录 变量和运算符 1.1 初步介绍 1.2 使用案例 1.3 知识点梳理 1.4 练习 序言:这一章我们将学习变量以及常见的类型,我们将以案例和代码相结合的方式进行梳理,但是其中所有的案例和知识点 ...
- Python集训营45天—Day04 (函数)
目录 1. 函数介绍 2. 函数的参数 3. 模块与函数 4. 递归函数 5. 匿名函数 6. 多返回值 python 的学习已经进入到第四天,前面几章我们已经学会了基本的变量操作,以及分支结构和循环 ...
- Python集训营45天—Day07 (面向对象编程进阶)
目录 1. @property装饰器 2. 魔法方法 3. 类属性和实例属性 4.静态方法和类方法 5. 单继承和多继承 6. 多态 7. del 方法 序言:上个章节我们了解了面向对象的基础知识,这 ...
- Python集训营45天—Day08 (文件操作)
目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...
- 8.5 正睿暑期集训营 Day2
目录 2018.8.5 正睿暑期集训营 Day2 总结 A.占领地区(前缀和) B.配对(组合) C 导数卷积(NTT) 考试代码 T1 T2 T3 2018.8.5 正睿暑期集训营 Day2 时间: ...
- 8.4 正睿暑期集训营 Day1
目录 2018.8.4 正睿暑期集训营 Day1 A 数对子 B 逆序对 C 盖房子 考试代码 A B C 2018.8.4 正睿暑期集训营 Day1 时间:4.5h(实际) 期望得分:30+50+3 ...
- 8.10 正睿暑期集训营 Day7
目录 2018.8.10 正睿暑期集训营 Day7 总结 A 花园(思路) B 归来(Tarjan 拓扑) C 机场(凸函数 点分治) 考试代码 A B C 2018.8.10 正睿暑期集训营 Day ...
- 8.6 正睿暑期集训营 Day3
目录 2018.8.6 正睿暑期集训营 Day3 A 亵渎(DP) B 绕口令(KMP) C 最远点(LCT) 考试代码 A B C 2018.8.6 正睿暑期集训营 Day3 时间:5h(实际) 期 ...
随机推荐
- pythonday01计算机初步认识
1.计算机的初步认识 常见的操作系统: win:xp,win7,win8,win10,windows server linux:centos图形化界面差,ubuntu个人开发,图形界面好,redhat ...
- Spring入门(九):运行时值注入
Spring提供了2种方式在运行时注入值: 属性占位符(Property placeholder) Spring表达式语言(SpEL) 1. 属性占位符 1.1 注入外部的值 1.1.1 使用Envi ...
- Linux 下用C语言连接 sqlite
1.在 /home/ 新建一个文件夹名为 sqlite #cd /home #mkdir sqlite 2.编写C语言代码,名称为 sql.c,代码如下 // name: sql.c // This ...
- Spring 核心技术(6)
接上篇:Spring 核心技术(5) version 5.1.8.RELEASE 1.5 Bean 作用域 创建 bean 定义时,你创建了一种用于创建 bean 定义中定义的类实例的方法.bean定 ...
- PyQt编写Python GUI程序,简易示例
https://blog.csdn.net/qq_41841569/article/details/81014207
- 【持续集成】GitLab CI + Docker 实现持续集成
GitLab CI + Docker 实现持续集成 一.持续集成(Continuous Integration, CI)的基本概念 概述 在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后 ...
- 亲,麻烦给个五星好评!—RatingBar
引言 上一篇的CheckBox已经让大家越来越接近实战演练了,本章我们继续分享干货给大家,今天介绍一个实用的UI控件RatingBar(星级评分条),对于使用过电商APP(某东,某宝等)的小伙伴们来说 ...
- Go语言学习——如何实现一个过滤器
1.过滤器使用场景 做业务的时候我们经常要使用过滤器或者拦截器(听这口音就是从Java过来的).常见的场景如一个HTTP请求,需要经过鉴权过滤器.白名单校验过滤.参数验证过滤器等重重关卡最终拿到数据. ...
- Java集合框架之Map接口浅析
Java集合框架之Map接口浅析 一.Map接口综述: 1.1java.util.Map<k, v>简介 位于java.util包下的Map接口,是Java集合框架的重要成员,它是和Col ...
- Delphi - cxGrid字段类型设定为ComboBox 并实现动态加载Item
cxGrid设定字段类型为ComboBox 在cxGrid中选中需要设定的字段: 单击F11调出属性控制面板,在Properties下拉选项中选中ComboBox,完成字段类型的设定. cxGrid ...