python中的流程控制语句

news2025/1/11 14:20:23

文章目录

  • if-else语句
    • 代码演示:
  • if-elif-else语句
    • 代码演示1:
    • 代码演示2:
  • while 循环语句
    • 循环语句练习
      • 1.求100以内所有的奇数之和
      • 2.求100以内所有7的倍数之和,以及个数
      • 3.求1000内的水仙花数
      • 4.获取用户输入的任意数,判断是否是质数。
      • 5. 打印100以内的质数
      • 6. 打印99乘法表

if-else语句

# 语法:
#     if 条件表达式:
#         代码块
#     else :
#         代码块
# 执行流程:
#     if-else语句在执行时,先对if后的条件表达式进行求值判断
#         如果为True,则执行if后的代码块
#         如果为False,则执行else后的代码块

代码演示:

age = 18
if age > 17:
    print('你已经成年了~~~~')
else:
    print('你还未成年~~~')

if-elif-else语句

# 语法:
#     if 条件表达式:
#         代码块
#     elif 条件表达式:
#         代码块
#     elif 条件表达式:
#         代码块
#     else:
#         代码块

# 执行流程:
#     if-elif-else 语句在执行时,会自上而下依次对条件表达式进行求值判断,
#         如果表达式的结果为True,则执行当前代码块,然后语句结束
#         如果表达式的结果为False,则继续向下判断,直到找到True为止
#         如果所有的表达式都是False,则执行else后的代码块

代码演示1:

age = 67
if age < 18:
    print('你还未成年')
elif 18 <= age < 30:
    print('你已经是成年人了')
elif 30 <= age < 60:
    print('你已经中年了')
elif age >= 60:
    print('你已经退休了')

代码演示2:

# 判断一个年份是否为闰年
# 如果一个年份可以被4整除不能被100整除,或者能被400整除,这个年份就是闰年
year = int(input('请输入一个任意的年份:'))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print(year, '是闰年')
else:
    print(year, '不是闰年')

while 循环语句

# 循环语句
# 循环语句可以使指定的代码块重复指定的次数
# 循环语句分成两种,while循环 和 for 循环 (for循环放到后面再说)
# while 循环
# 语法
#   while 条件表达式:
#       代码块
#   else :   #不常用,但是while循环后面确实可以加else
#       代码块
#   执行流程:
#     while语句在执行时,会先对while后的条件表达式进行求值判断,
#     如果判断结果为True,则执行循环体(代码块),
#     循环体执行完毕,继续对条件表达式进行求值判断,依次类推,
#     直到判断结果为False,则循环终止,如果循环有对应的else,则执行else后的代码块
#  条件表达式恒为True的循环语句,称为死循环,它会一直运行,慎用。

循环语句练习

1.求100以内所有的奇数之和

# 分析:奇数是单数。奇数指在整数中,不能被2整除的数,奇数的数学表达形式为:2k+1(k为整数)
# 方式一 通过奇数的定义
i = 1
odd_sum = 0  # 定义奇数之和变量
while i <= 100:
    if (i % 2) != 0:
        odd_sum += i  # 累加奇数之和
        print(i, end=' ')  # 打印奇数
    i += 1
print()
print('100以内所有的奇数之和:', odd_sum)
#打印结果:
#1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 
#100以内所有的奇数之和: 2500

# 方式二 通过奇数的数学表达式 ,这种方式效率高
i = 0
flag = True
while flag:
    num = 2 * i + 1
    if num < 100:
        print(num, end=' ')
        i += 1
    else:
        flag = False
print()
print('100以内所有的奇数之和:', odd_sum)
#打印结果:
#1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 
#100以内所有的奇数之和: 2500

2.求100以内所有7的倍数之和,以及个数

# 分析 能够被7整除的数 是7的倍数 例如:7 14 28 .... (虽然0除以7也能整除 但是数学上规定不包括0)
i = 1  #起始值
count = 0  # 定义统计个数的变量
sum = 0  # 定义统计和的变量
while i <= 100:
    if (i % 7) == 0:
        sum += i
        count += 1
        print(i, end=' ')
    i += 1
print()
print('100以内所有7的倍数之和:', sum)
print('100以内所有7的倍数的个数:', count)
#添加时间戳比较两种方式的执行耗时
from time import *
#方式一 就是上面的那个方法
startTime = time()
i = 1  # 起始值
count = 0  # 定义统计个数的变量
sum = 0  # 定义统计和的变量
while i <= 100:  #可以把100换成10000000 效果更明显
    if (i % 7) == 0:
        sum += i
        count += 1
        # print(i, end=' ')
    i += 1
print()
print('100以内所有7的倍数之和:', sum)
print('100以内所有7的倍数的个数:', count)
endTime = time()
print()
print(f'方式一程序执行耗时:{endTime - startTime}秒')

# 方式二
startTime = time()
i = 1
count = 0  # 定义统计个数的变量
sum = 0  # 定义统计和的变量
flag = True
while flag:
    j = 7 * i  # j为7的倍数
    if j < 100: #可以把100换成10000000 效果更明显
        sum += j
        count += 1
        # print(j, end=' ')
        i += 1
    else:
        flag = False
print()
print('100以内所有7的倍数之和:', sum)
print('100以内所有7的倍数的个数:', count)
endTime = time()
print()
print(f'方式二程序执行耗时:{endTime - startTime}秒')

3.求1000内的水仙花数

水仙花数是指一个 n 位数(n≥3),它的每个位数上的数字的n次幂之和等于它本身
(例如:1**3 + 5 **3 + 3 ** 3 = 153)

i = 100  # 从100开始
while i < 1000:
    a = i // 100        # 获取百位上的数
    b = i % 100 // 10   # 获取十位上的数  还可以 b = i // 10 % 10  或者 b = (i - a*100) // 10
    c = i % 10          # 获取个位上的数
    if (a ** 3 + b ** 3 + c ** 3) == i:
        print(i, end=' ')
    i += 1
    
    #打印结果
    #153 370 371 407 

4.获取用户输入的任意数,判断是否是质数。

质数也叫自然数是只能被1和它自身整除的自然数,1不是质数也不是合数。
只有大于1的整数才有可能成为质数

i = int(input('请输出任意数:'))
j = 2
flag = True
while j < i:
    if i % j == 0:  # 例如 如果输出的i=17,那么 i 会被2到16之间的数都整除一遍,看是否有满足此条件的j。
        flag = False  # 一旦进入代码块中,就表明当前的i不是质数
    j += 1
if flag:
    print(i, '是质数')
else:
    print(i, '不是质数')
    
#优化后的
i = int(input('请输出任意数:'))
j = 2
flag = True
while j <= i ** 0.5:  # 第二处优化  这里为啥改成<=是因为考虑到i为平方根,刚好是整数的情况下。
    if i % j == 0:  # 例如 如果输出的i=17,那么 i 会被2到16之间的数都整除一遍,看是否有满足此条件的j。
        flag = False  # 一旦进入代码块中,就表明当前的i不是质数
        break  # 第一处优化
    j += 1
if flag:
    print(i, '是质数')
else:
    print(i, '不是质数')

两处优化的地方说明:
break:表示 已经确定当前数不是质数了,不需要再循环执行余下的步骤了。
j < i 改为 j <= i ** 0.5

在这里插入图片描述

5. 打印100以内的质数

#直接上优化后的

startTime = time()
i = 2
while i < 100:  # 当这里的i的范围越大时,优化的效果越明显
    j = 2
    flag = True
    while j <= i ** 0.5: # 优化二
        if i % j == 0: 
            # print(i, '不是质数')
            flag = False
            break   #优化 一
        j += 1
    if flag:
        print(i, '是质数', end='')
    # else:
    #     print(i, '不是质数')
    i += 1
endTime = time()
print()
print(f'程序执行耗时:{endTime - startTime}秒')

6. 打印99乘法表

# 1 * 1 =2
# 1 * 2 = 2   2* 2 =4
# 1 * 3 = 3   2 * 3 = 6  3 * 3 = 9
# 1 * n = n   2 * n = 2*n  3 * n = 3*n
#  ............
#  ............
#  ............
# 1 * 9 = 9   2 * 9 = 18     .............       9 * 9 = 81
# 需要两侧循环 外侧循环 控制 高度 ,内层循环 控制 宽度
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(j, '*', i, '=', j * i, end='\t')
        j += 1
    i += 1
    print()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/580489.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Reinforcement Learning: An Introduction》第2章笔记

2. Multi-armed Bandits 评估性反馈&#xff08;evaluative feedback&#xff09; 完全取决于采取的动作&#xff0c;这是强化学习采用的方式。纯粹的评估性反馈表明要执行的动作有多好&#xff0c;但是不关注它是否是可能的最好或最坏的动作。指导性反馈&#xff08;instruct…

迭代器Iterator和生成器funcion *

迭代器Iterator 迭代器 为各种不同的数据结果提供统一的访问机制&#xff0c;任何数据结构只要部署Iterator接口&#xff0c;就可以完成便利操作&#xff0c;主要提供for of 工作原理&#xff1a; 创建一个指针对象&#xff0c;指向当前数组的起始位置 第一次调用对象的next方…

JAVA之数组2

添加元素 从后往前进行迭代&#xff0c;最后在末尾插入元素 tip&#xff1a;为避免数字在覆盖过程中丢失&#xff0c;故从后往前覆盖 删除元素 从前往后迭代&#xff0c;最后将末尾赋值为0 tip: 以覆盖的数arr【i】为基准&#xff0c;构造循环 共同处Tip: 范围均为【index1&…

子串--子字符串 0528

210102 201012 A1A2…An An…A2A1 如何做&#xff0c; 翻转的是21&#xff0c;因为2>1; 翻转的是210&#xff0c;因为2>0; 翻转的是2101&#xff0c;因为2>1&#xff1b; 翻转的是21010&#xff0c;因为2>0&#xff1b; 翻转的是210102&#xff0c;因为22且1&…

JavaScript 进阶 (二)

目录 深入对象 创建对象三种方式 构造函数 实例成员&静态成员 内置构造函数 Object Array String Number 深入对象 创建对象三种方式 1. 利用对象字面量创建对象 const obj { name : abc} 2. 利用 new Object 创建对象 const obj new Object({ uname: 123 }…

如何评估一个好的物业系统开发方案?

在当前不断变化的物业管理市场中&#xff0c;物业系统已成为物业管理公司提高管理效率和降低成本的必然选择。因此&#xff0c;如何评估一个好的物业系统开发方案成为了每个物业管理决策者必须面对的重要问题。在本文中&#xff0c;我们将介绍如何从以下几个方面来评估一个好的…

文心一言 VS 讯飞星火 VS chatgpt (24)-- 算法导论4.2 6题

六、用Strassen 算法作为子进程来进行一个 knn 矩阵和一个nkn 矩阵相乘&#xff0c;最快需要花费多长时间?对两个输入矩阵规模互换的情况&#xff0c;回答相同的问题。 文心一言&#xff1a; Strassen 算法是一种用于矩阵乘法的分治算法&#xff0c;它将原始的矩阵分解为较小…

腾讯云产品首单特惠是什么意思?包括新用户老用户的解答

腾讯云最近推出的活动限制条件为产品首单特惠&#xff0c;但是有的用户购买不了&#xff0c;右上角提示“产品首单特惠”&#xff0c;那么什么是产品首单特惠&#xff1f;什么是新用户&#xff1f;什么是老用户&#xff1f;新手站长给大家&#xff1a; 腾讯云产品首单特惠是什…

【Linux】Pinctrl子系统简介

前言&#xff1a; 我们工作开发中非常常用的就是GPIO&#xff0c;在Linux开发中&#xff0c;是有必要去熟悉并理解的。在Linux内核中也有提供相应的子系统pinctrl子系统&#xff0c;本文从大的面上去了解它。 参考学习&#xff1a;Linux笔记老师课程&#xff08;Pinctrl子系统&…

CentOS 7.6 (Linux)环境上离线安装 MySQL 8

1 下载安装包 访问https://dev.mysql.com将网页划到最下面&#xff0c;点击下载MySQL社区安装包 按照如下图片框选的进行下载 2 解压上传 下载完了之后使用WinRAR软件在Windows电脑上解压&#xff0c;选择如下包使用ftp工具上传至Linux机器最大目录下。 3 安装前检查 …

DCGAN-MNIST——使用TensorFlow 2 / Keras实现深度卷积DCGAN来生成时尚MNIST的灰度图像

DCGAN-MNIST——使用TensorFlow 2 / Keras实现深度卷积DCGAN来生成时尚MNIST的灰度图像 1. 效果图2. 原理2.1 结构指南2.2 模型结构及训练过程 3. 源码参考 这篇博客将介绍如何使用TensorFlow 2 / Keras中实现深度卷积GAN&#xff08;DCGAN&#xff09;来生成类似时尚MNIST的灰…

魔法反射--java反射进阶(实战篇)

&#x1f473;我亲爱的各位大佬们好&#x1f618;&#x1f618;&#x1f618; ♨️本篇文章记录的为 魔法反射–java反射进阶(实战篇) 相关内容&#xff0c;适合在学Java的小白,帮助新手快速上手,也适合复习中&#xff0c;面试中的大佬&#x1f649;&#x1f649;&#x1f649;…

openpose原理及安装教程(姿态识别)

OpenPose是一个基于深度学习的人体姿态估计框架,可以实时地估计人体的关键点,包括身体和手部姿势。它是由卡内基梅隆大学的研究团队开发的,已经成为了人体姿态估计领域的一个重要项目。 OpenPose的原理是基于卷积神经网络(CNN),通过对图像进行深度学习处理,可以检测出…

如何在华为OD机试中获得满分?Java实现【寻找峰值】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

Aerial Vision-and-Dialog Navigation阅读报告

Aerial Vision-and-Dialog Navigation 本次报告&#xff0c;包含以下部分&#xff1a;1摘要&#xff0c;2数据集/模拟器&#xff0c;3AVDN任务&#xff0c;4模型&#xff0c;5实验结果。重点介绍第2/3部分相关主页&#xff1a;Aerial Vision-and-Dialog Navigation (google.com…

【章节2】husky + 自动检测是否有未解决的冲突 + 预检查debugger + 自动检查是否符合commit规范

在章节1中我们学习到了commit的规范、husky的安装和使用、lint-staged怎么安装以及怎么用来格式化代码。那么这篇文章我们来看看commit预处理中我们还能做哪些处理呢&#xff1f; 自然&#xff0c;我们还是要用到husky这个东西的&#xff0c;大致过程其实和章节1异曲同工&#…

不要再来问我小学、初中毕业想出去学习编程找到工作的问题了,你要做就去做,结果自己扛着就行了!

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&#x1…

探索Java面向对象编程的奇妙世界(五)

⭐ Object 类⭐ toString 方法⭐ 和 equals 方法⭐ super 关键字⭐ 继承树追溯⭐ 封装(encapsulation) ⭐ Object 类 Object 类基本特性 &#x1f41f; Object 类是所有类的父类&#xff0c;所有的 Java 对象都拥有 Object 类的属性和方法。 &#x1f41f; 如果在类的声明中未…

docker-compose方式安装运行Jenkins

docker-compose方式安装运行Jenkins 服务器系统&#xff1a;centos 7.6 以docker-compose 编排容器方式安装&#xff0c;当然需提前安装docker-compose环境&#xff08;见百度->docker-compose环境安装&#xff09; docker-compose.yml version: 3.1 services:jenkins:i…

WF攻击(网站指纹攻击)

网站指纹&#xff08;WF&#xff09;攻击是被动的本地攻击者通过比较用户发送和接收的数据包序列与先前记录的数据集来确定加密互联网流量的目的地。可以通过网络流量中的模式来识别Tor用户访问过的页面。因此&#xff0c;WF攻击是Tor等隐私增强技术特别关注的题。 攻击过程 该…