专栏首页A2DataDay3.判断&循环语句

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以内的所有完数。

本文分享自微信公众号 - DataScience(DataScienceTeam),作者:DataSciecne

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python判断与循环详解

      一、城市公共电汽车价格调整为:10公里(含)内2元,10公里以上部分,每增加1元可乘坐5公里。使用市政交通一卡通刷卡乘坐城市公共电汽车,市域内路段给予普通卡...

    DataScience
  • 三大结构-分支

    DataScience
  • 【Python基础】整数与浮点数

    Python中,我们除了要跟代码打交道外,还要处理很多的数字,用来做可视化、记录用户信息等等。所以Python会根据数字的用法,以不同的方式处理他们,常见的类型...

    DataScience
  • Python3的fo if while

    print("{0} * {1} = {2}".format(i, x, i*x), end=" ")

    py3study
  • 让你的 Python 代码优雅又地道

    如果说优雅也有缺点的话,那就是你需要艰巨的工作才能得到它,需要良好的教育才能欣赏它。

    小小科
  • python简单语法2

    py3study
  • Python学习总结__Day1

    1、解释型:一边编译一边执行,劣势是运行速度慢,但通过运用PyPy交互解释器(JIT技术)会让python程序执行速度快很多。优势是可移植性强。

    py3study
  • Day-01 Python基础

      Python是一门解释型,弱类型,高级开发编程语言;可广泛应用于众多领域,如:网页开发,数据分析,爬虫等众多领域。

    py3study
  • Python优雅写法,让你工作效率翻2倍

    我们都知道,Python 的设计哲学是「优雅」、「明确」、「简单」。这也许很多人选择 Python 的原因。但是我收到有些伙伴反馈,他写的 Python 并不优...

    马哥linux运维
  • python核心编程2 第五章 练习

    5-2 运算符 (a) 写一个函数,计算并返回两个数的乘积 (b) 写一段代码调用这个函数,并显示它的结果

    py3study

扫码关注云+社区

领取腾讯云代金券