Day3.判断&循环语句
例题引导:
Q:输入3个整数,按从小到大依次输出,用“->”符号相连: 例如:输入4,2,6,输出2 -> 4 -> 6
A:
a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
c = int(input('请输入第三个整数:'))
if (a > b):
x = b
b = a
a = x
if (a > c):
x = c
c = a
a = x
if (b > c):
x = c
c = b
b = x
print(a,'->',b,'->',c)
学习引导:
- if判断语句
- while循环
- continue、break的用法
- for语句
判断语句
if判断语句
该语句的语法格式如下:
#单条件判断:
if condition_1:
result_1
else:
result_2
#多条件判断:
if condition_1:
result_1
elif:
result_2
elif:
result_3
else:
result_4
'''
现在我们做一个成绩评级的小程序
要求:按照90-100/80-89/60-79/40-59/小于39
划分五个等级
'''
score=eval(input("请输入成绩:n"))
#eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。
if (score>90)&(score<=100):
print('该同学成绩为优')
elif (score>80)&(score<=89): #多条件判断
print('该同学成绩为良')
elif (score>60)&(score<=79):
print('该同学成绩为良')
elif (score>40)&(score<=59):
print('该同学成绩为不及格')
elif (score<39)&(score>0):
print('该同学请自行退学')
'''
请输入成绩:
34
该同学请自行退学
'''
小测试:
1.在日常编码中if的使用率会很高,但是过度臃肿的if条件会增加代码的理解难度,导致最后只能自己看懂一些
for a in Data:
if a.b:
if a.c:
if a.d:
# do sth...
for a in balabala:
if not a.b:
continue
if not a.c:
continue
if not a.d:
continue
# do sth..
如上两端代码,进行测试的时候其中的值可以随意,虽然判断逻辑不尽相同,但是目的是一样的,这时候执行效率会有差别吗?那么if这种不可能避免的代码怎么才能进行优化,提高执行效率呢?
2.体质指数(BMI)=体重(kg)÷身高^2(m),请根据公式构造一段代码,输入体重和身高,输出BMI指数结果:低于18.5:过轻18.5-25:正常25-28:过重28-32:肥胖高于32:严重肥胖
3.将一个正整数分解质因数。例如:输入90,打印出90=233*5
循环语句
while 循环
while语句格式:
while condition(判断条件):
statements(执行语句)
实例:计算1-100的和
#简单一点的写法
n=0
sum=0
while n<=100:
sum +=n
n+=1
print(sum)
#规范一点的写法
# n = 100
# sum = 0
# counter = 1
# while counter <= n:
# sum = sum + counter
# counter += 1
# # print("1 到 %d 之和为: %d" % (n,sum))
#5050
下面做一个小游戏,猜一下随机数
这里用到了random这个随机数模块,这个模块用于生成随机数。 其中random.randint(a,b)用于生成指定范围内的整数,参数a是下限,参数b是上限,生成的随机数介于二者之间。
import random
n=random.randint(0,10)
user_guess=int(input("Input your guess:"))
if user_guess>n:
print('try smaller...')
elif user_guess<n:
print('try bigger...')
else:
print('Bingo!You got it!')
print(n)
'''
Input your guess:9
try smaller...
1
'''
上面的这串程序只能猜一次,那如果我们想要猜出结果呢?这个时候就要用到循环。下面我们对上面的代码进行优化
import random
n = random.randint(0, 10)
user_guess = int()
while user_guess != n:
user_guess = int(input("Input your guess:"))
if user_guess > n:
print('try smaller...')
elif user_guess < n:
print('try bigger...')
else:
print('Bingo!You got it!')
print(n)
'''
Input your guess:3
try smaller...
Input your guess:1
Bingo!You got it!
1
'''
小测试:
1.丑数是只包含质因数 2, 3, 5 的正整数。控制台输入一个正整数,判断其是否为丑数。
2.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号。
3.使用while循环输出1-2+3-4+5.....+99的和。
continue、break的用法
- continue是终止本次循环
- break是终止循环
#continue举例
#输出十以内小于等于4和大于等于7的数
count=0
while count<10:
count +=1
if count>4 and count<7:
continue
print(count)
'''
1
2
3
4
7
8
9
10
'''
continue + else 的用法
count=0
while count<10:
count +=1
if count>4 and count<7:
#当数字满足上述条件时,执行continue,终止本次循环,不执行打印语句。
continue
print(count)
else:
print('循环正常结束')
'''
1
2
3
4
7
8
9
10
循环正常结束
'''
break的用法
count=0
while count<10:
count +=1
if count>4: #当数字大于4的时候执行break,终止循环
break
print(count)
else:
print('循环正常结束')
'''
1
2
3
4
'''
小测试
1.定义用户名“python”和密码“666666”,控制台提示用户输入用户名和密码,判断用户名和密码是否正确。
输入正确则跳出循环,输出“你好!”,不正确则提示“验证失败,请重新输入!”并继续提示用户输出用户名和密码,直到用户输入正确的信息,程序结束。
for语句
for循环可以遍历任何序列的所有元素
for语句的一般格式如下:
for variable(变量) in [sequence(序列)]:
statements(执行语句)
else:
statements(执行语句)
循环实例:
a=['welcome','to','data','science']
for i in a: #遍历数组内的每一个元素并且打印
print (i)
for i in 'DataScience': #遍历该字符串的每一个元素且打印
print (i)
print('遍历结束')
'''
welcome
to
data
science
D
a
t
a
S
c
i
e
n
c
e
遍历结束
'''
for...else...语句
#判断一个数是不是质数
n=int(input('请随机输入一个实数:'))
for i in range(2,n):
if n%i == 0: #判断是否能整除,如能,打印输出,终止循环;若不能,执行else语句
print(n,'能被{}整除,不是质数'.format(i)) #format的用法,之前的课程我们有讲到
break
# continue
else:
print (n,'是一个质数')
'''
请随机输入一个实数:4
4 能被2整除,不是质数
'''
循环嵌套
for 循环嵌套和while 循环嵌套的案例演示
for 循环嵌套格式
for variable in seuqence:
for veriable_ in sequence_:
statements_
statements
#while 循环嵌套格式
while condition:
while condition_:
statements_
statements
#for 和 while 也可相互嵌套
判断1-20之间哪些是质数
i = 2
while(i < 20):
j = 2
while(j <= (i/j)):
if not(i%j):
break
j = j + 1
if (j > i/j):
print (i, " 是质数")
i = i + 1
print ("结束!")
'''
2 是质数
3 是质数
5 是质数
7 是质数
11 是质数
13 是质数
17 是质数
19 是质数
结束!
'''
小测试
1.在一行中输入8个人的身高(按空格分隔),输出8人的身高平均值和身高超过平均值的数:
例如:输入166 178 192 188 173 169 170 172,
输出:avg = 176.0 / 178 192 188
2.将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入待换的零钱数额x∈(8,100)。
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
例如,输入13,输出如下:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
3.输入行数,输出高度为该行数的等边三角形,每行个数递增1。例如输入3,输出:
*
* *
* * *
4.计算10到20000之间,所有质数,并思考执行时间(在进行大数据量运算时,代码执行效率会影响很多)
5.一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程找出1000以内的所有完数。
- Docker+Jenkins持续集成环境(2)使用docker+jenkins构建nodejs前端项目
- JavaScript中的this详解
- 使用SpringBoot开发REST服务
- CSS3 -webkit-filter 滤镜
- Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果
- Javascript中的Label语句
- 从编辑距离、BK树到文本纠错
- iframe基本知识及iframe版本Tab切换
- switch语句以及与if的比较
- kgtemp文件转mp3工具
- AJAX原理与步骤
- 【编程基础】C语言FILE结构体以及缓冲区深入探讨
- 获取标签的那些事 之 动态集合
- 一起读源码之zookeeper(1) -- 启动分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP array_shift()用法实例分析
- PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
- 基于Python+QT的gui程序开发实现
- 使用tensorflow根据输入更改tensor shape
- 使用keras实现非线性回归(两种加激活函数的方式)
- Django Form设置文本框为readonly操作
- 浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
- keras和tensorflow使用fit_generator 批次训练操作
- php-fpm中max_children的配置
- python文件读取失败怎么处理
- PHP-FPM的配置与优化讲解
- python为什么会环境变量设置不成功
- keras自动编码器实现系列之卷积自动编码器操作
- PHP数字金额转换成中文大写显示
- 详解Python多线程下的list