Python基础003

news2024/12/27 13:45:09

Python流程控制基础

1.条件语句

内置函数input
a = input("请输入一段内容:")
print(a)
print(type(a))

代码执行的时候遇到input函数,就会等键盘输入结果,已回车为结束标志,也就时说输入回车后代码才会执行

2.顺序执行

Python代码在执行过程中,遵循下面的基本原则:
普通语句,直接执行;
碰到函数,将函数体载入内存,并不直接执行
碰到类,执行类内部的普通语句,但是类的方法只载入,不执行
碰到if、for等控制语句,按相应控制流程执行
碰到@,break,continue等,按规定语法执行
碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码

Python代码块

Python以缩进来标记代码块,代码块必须要缩进,没有缩进不是代码块。另外,同一代码块的缩进量要相同,缩进量不同的不属于同一代码块。

1.不要忘记缩进

if、elif、else后面的代码块一定要缩进,而且缩进量要大于if、elif、else本身。
先说明一个反面教材

age = input("请输入您的名字:")
if age < 18 :
print("警告你还未成年,不能进入网吧")
else:
print("你已经成年,欢迎光临")

IndentationError: expected an indented block after 'if' statement on line 95
缩进错误:第95行的“if”语句后应出现缩进块

不缩进的话,就不能构成ifelse执行体

2.缩进多少??

Python要求代码块必须缩进,但是却没有要求缩进量,你可以缩进n个空格,也可以缩进n个Tab键的位置。但是从编程习惯的角度看,我建议缩进1个Tab键的位置,或者缩进4个空格;它们两者其实是等价的,很多编辑器都可以将Tab键设置为4个空格

3.所有的语句都需要缩进

age = int(input("请输入您的年龄:"))
if age < 18 :
	print("你还未成年,建议在家人陪同下使用该软件!")
print("未成年人如果得到了家长的同意,请忽略以上提示。") #此行忘记缩进

在这里插入图片描述
用户输入年龄已超过18,但却出现了“未成年人”提示,好尴尬~~。因为第二个print语句没有缩进,if没有把它和第一个print语句当做同一个代码块,只要把第二个print语句同样缩进4个空格即可。

4.同一代码块需要缩进相同

age = int(input("请输入您的年龄:"))
if age < 18 :
	print("你还未成年,建议在家人陪同下使用该软件!")
     print("未成年人如果得到了家长的同意,请忽略以上提示。") #此行忘记缩进
还是上面的示例,第二语句缩进比第一语句缩进多了系统也会提示错误。

在这里插入图片描述
位于同一代码块的所有语句必须拥有相同的缩进量,多一个或少一个空格都不行

5.不要随便缩进

另外需要注意的是,不需要使用代码块的地方千万不要缩进,一旦缩进就会产生一个 代码块。
下面的代码是一个反面教材:

info = "Python 教程的网址是:http://c.biancheng.net/python/"
   print(info)

这两条简单的语句没有包含分支、循环、函数、类等结构,不应该使用缩进。

理解if语句和语句块

if语句是一种分支语句,用于判断条件是否成立,如果条件成立则执行相应的代码,否则不执行,if语句通常的语法形式如下:

num = int(input("请输入一个整数:"))
if num % 2 == 0:
	print("您输入的是偶数")

在这里插入图片描述
if语句不需要只有一个语句,它可以有一个块,一个块可以是多个语句。

num = int(input("请输入一个整数:"))
if num % 2 == 0:
	print("您输入的是偶数")
	print("您输入的是偶数")
	print("您输入的是偶数")
	print("您输入的是偶数")

在这里插入图片描述

1.if单分支语句

if语句用于基于某个条件执行代码块。当您只关心一个条件并且只想在该条件为真时执行代码时,您可以使用单分支的if语句

x = 10
if x > 5:
	print("x比5大")

在这里插入图片描述
上面示例,我们定义了一个变量x并将其设置为10,然后,我们使用if语句检查x是否大于5.因为x的值大于5,所以if语句的代码块会被执行。

2.if单分支例子

num = 66
if num > 0 :
	print("这是一个整数")

在这里插入图片描述

  • 定义一个变量num,并赋值为66。
  • 使用if语句检查num是否大于0。
  • 如果num大于0,程序将执行if语句块内的代码。
  • 在if语句块内,使用print函数输出字符串"这是一个正数."。
  • 当你运行这段代码时,由于num的值为66,大于0,因此程序会输出"这是一个正数."

3.if单分支语句扩展

if else子句
如果我们想要有条件地执行两种不同的代码块,可以使用if-else语句

num = int(input("请输入一个整数:"))
if num % 2 == 0:
	print("您输入的是偶数")
else:
	print("您输入的是奇数"

在这里插入图片描述

#引入os标准模块
import os
#os.name方法,返回操作系统类型,赋值给变量s1
s1 = os.name
#如果s1等于nt,则执行符语句块中的内容
if s1 == 'nt':
	print(f"The current os is {s1}.")
elif s1 == 'posix':
	print("The is Linxu")

在这里插入图片描述

root@localhost:/home/scrpict/py# python
Python 3.9.18 (main, Jan 24 2024, 00:00:00) 
[GCC 11.4.1 20231218 (Red Hat 11.4.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.name
'posix'
>>> exit()

在这里插入图片描述

root@localhost:/home/scrpict/py# cat /etc/os-release
NAME="CentOS Stream"
VERSION="9"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="9"
PLATFORM_ID="platform:el9"
PRETTY_NAME="CentOS Stream 9"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:centos:centos:9"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://issues.redhat.com/"
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream"
root@localhost:/home/scrpict/py# cat /etc/os-release | grep -E '^NAME|^VERSION'
NAME="CentOS Stream"
VERSION="9"
VERSION_ID="9"
root@localhost:/home/scrpict/py# cat /etc/os-release | grep -E '^NAME|^VERSION' | grep -v ID
NAME="CentOS Stream"
VERSION="9"
root@localhost:/home/scrpict/py# cat /etc/os-release | grep -E '^NAME|^VERSION' | grep -v ID |awk -F"=" '{print $1}'
NAME
VERSION
root@localhost:/home/scrpict/py# cat /etc/os-release | grep -E '^NAME|^VERSION' | grep -v ID |awk -F"=" '{print $2}'
"CentOS Stream"
"9"
root@localhost:/home/scrpict/py# cat /etc/os-release | grep -E '^NAME|^VERSION' | grep -v ID |awk -F"=" '{print $2}' | sed 's@"@@g'
CentOS Stream
9
root@localhost:/home/scrpict/py# cat /etc/os-release | grep -E '^NAME|^VERSION' | grep -v ID |awk -F"=" '{print $2}' | sed 's@"@@g' | column
CentOS Stream	9


root@localhost:/home/scrpict/py# os_type=`cat /etc/os-release | grep -E '^NAME|^VERSION' | grep -v ID |awk -F"=" '{print $2}' | sed 's@"@@g' | column`
root@localhost:/home/scrpict/py# echo $os_type 
CentOS Stream 9
root@localhost:/home/scrpict/py# echo $os_type | tr -d " "
CentOSStream9
root@localhost:/home/scrpict/py# os_type=$(echo $os_type | tr -d " ")
root@localhost:/home/scrpict/py# echo $os_type 
CentOSStream9

检查变量d是否有某个键
d = {"a": 1}
key = "a"
if isinstance(d, dict) and key in d:
	print(f"字典含有键'{key}'")
else:   
	print(f"字典不含有键'{key}'"

4.if-elif-else 语句

我们需要根据多个条件进行判断,此时可以使用 if-elif-else 语句

age = int(input("请输入这个人的年龄:"))
if age<12:
	print("还没上初中")
elif 12 <= age < 15:
	print("他是一个初中生") 
elif 15 <= age < 18:
	print("他是一个高中生")
elif 18 <= age < 22:
	print("他是大学生")
else:
	print("他已经毕业踏入社会了")

在这里插入图片描述

if多分支语句

1.elif多分支多条件语句

判断数字num是正数还是负数
num = int(input("请输入一个数字:"))
if num > 0:
    print("这是一个正数")
elif num < 0:
    print("这是一个负数")

在这里插入图片描述

2.if…elif…else子句

age = int(input("请输入你的年龄 :"))
if age >= 18:
    print("你已成年。")
else:
    print("你还未成年。")

在这里插入图片描述

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

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

相关文章

【问题记录】如何在xftp上查看隐藏文件。

显示隐藏的文件夹 用xftp连接到服务器后&#xff0c;发现有些隐藏的文件夹并未显示出来&#xff0c;通过以下配置&#xff0c;即可使隐藏的文件夹给显示出来。 1.点击菜单栏的"小齿轮"按钮&#xff1a; 2.勾选显示隐藏的文件夹&#xff1a; 3.点击确定即可。

古韵流光:探秘五代耀州窑青瓷提梁倒灌壶的奇妙设计

在陕西历史博物馆的静谧展厅中&#xff0c;一件千年前的瓷器静静陈列&#xff0c;它不仅承载着历史的沉淀&#xff0c;更凝聚了古代匠人的非凡智慧。这便是五代时期的耀州窑青瓷提梁倒灌壶&#xff0c;一件巧夺天工的艺术品&#xff0c;其独特的设计至今仍让人叹为观止。 一、倒…

算法mq 交互通用校验模块设计

背景 当前与算法交互均通过rocketMQ异步交互&#xff0c;绝大部分场景一条请求mq消息应对应一条返回mq&#xff0c;但由于各种原因&#xff08;消息积压、程序bug&#xff09;&#xff0c;可能会导致返回mq超时未返回或者消息丢失。工程侧针对一些重要场景 case by case的通过…

【web3】分享一个web入门学习平台-HackQuest

前言 一直想进入web3行业&#xff0c;但是没有什么途径&#xff0c;偶然在电鸭平台看到HackQuest的共学营&#xff0c;发现真的不错&#xff0c;并且还接触到了黑客松这种形式。 链接地址&#xff1a;HackQuest 平台功能 学习路径&#xff1a;平台有完整的学习路径&#xff…

VS2022+Qt+OpenCV Debug模式下,循环中格式转换引起的内存异常问题 debug_heap.cpp

文章目录 前言一、问题二、报错1.提示图片2.提示堆栈3.反汇编位置 三、解决办法总结 前言 最近在使用VS2022&#xff0c;C&#xff0c;OpenCV&#xff0c;Qt开发时&#xff0c;遇到了一个疑难杂症-在循环中执行字符串格式转换会触发内存异常&#xff0c;经过痛苦的排查过程&am…

Ubuntu下反弹shell的思考

目录 Ubuntu的命令执行环境 bash (Bourne Again SHell): sh (Bourne SHell): dash (Debian Almquist SHell): 它们之间的关系&#xff1a; 可能遇到的问题 一、脚本权限问题 二、命令执行环境(shell解释器)问题 如何解决&#xff1f; 1.修改/bin/sh软连接的指向为bas…

C++字体库开发

建议根据字体需求&#xff0c;多个组合使用。高度定制可基于freeTypeharfbuzz基础库完成。 GitHub - GNOME/pango: Read-only mirror of https://gitlab.gnome.org/GNOME/pango GitHub - googlefonts/fontview: Demo app that displays fonts with a free/libre/open-source …

Java_多线程:线程和死锁

一、线程 1、线程的状态流转 新建状态&#xff08;New&#xff09;&#xff1a;当线程对象对创建后&#xff0c;即进入了新建状态&#xff0c;如&#xff1a;Thread t new MyThread();就绪状态&#xff08;Runnable&#xff09;&#xff1a;当调用线程对象的start()方法&…

JAVA极简图书管理系统,初识springboot后端项目

前提条件&#xff1a; 具备基础的springboot 知识 Java基础 废话不多说&#xff01; 创建项目 配置所需环境 将application.properties>application.yml 配置以下环境 数据库连接MySQL 自己创建的数据库名称为book_test server:port: 8080 spring:datasource:url:…

搜索型数据库的技术发展历程与趋势前瞻

概述 随着数字科技的飞速发展和信息量的爆炸性增长&#xff0c;搜索引擎已成为我们获取信息的首选途径之一&#xff0c;典型的代表厂商如 Google。然而&#xff0c;随着用户需求的不断演变&#xff0c;传统的搜索技术已经无法满足人们对信息的实时性、个性化和多样性的需求。 …

C++基础知识-编译相关

记录C语言相关的基础知识 1 C源码到可执行文件的四个阶段 预处理(.i)、编译(.s)、汇编(.obj)、链接。 1.1 预处理 预处理阶段&#xff0c;主要完成宏替换、文件展开、注释删除、条件编译展开、添加行号和文件名标识&#xff0c;输出.i/.ii预处理文件。 宏替换&#xff0c;…

AI的价值——不再那么“废”人,保险行业用AI人员流失减少20%

最近有个热点挺让人唏嘘的&#xff0c;某咖啡店员工对顾客泼咖啡粉&#xff0c;我们对于这个事件不予评价。但是对员工这种情绪崩溃&#xff0c;我们所接触的行业中也有不少例子&#xff0c;比如保险行业&#xff0c;相信大家经常会被打保险电话&#xff0c;这类电话很容易就被…

K8s 的最后一片拼图:dbPaaS

K8s 的发展使得私有云跟公共云之间的技术差不断的缩小&#xff0c;不管是在私有云还是公共云&#xff0c;大家今天都在基于 K8s 去开发 PaaS 系统。而 K8s 作为构建 PaaS 的基础&#xff0c;其全景图里还缺最后一块“拼图”——dbPaaS。作为一个云数据库行业干了十几年的资深从…

Swin Transformer:最佳论文,准确率和性能双佳的视觉Transformer | ICCV 2021

论文提出了经典的Vision Transormer模型Swin Transformer&#xff0c;能够构建层级特征提高任务准确率&#xff0c;而且其计算复杂度经过各种加速设计&#xff0c;能够与输入图片大小成线性关系。从实验结果来看&#xff0c;Swin Transormer在各视觉任务上都有很不错的准确率&a…

哈尔滨如何选择合适的等保测评机构?

选择合适的等保测评机构确实需要细致考虑&#xff0c;您提到的八个方面已经非常全面&#xff0c;涵盖了资质、专业能力、服务质量和合规性等多个关键点。为了进一步确保所选机构的可靠性&#xff0c;还可以考虑以下几点&#xff1a; 1.技术创新与工具&#xff1a;了解测评机构是…

UE5的安装与基本操作(一)

文章目录 前言安装UE5新建第一个游戏项目基本游览方式对目标进行变换各种变换对齐 快速定位目标 总结 前言 Unreal Engine 5 (UE5) 是一款由 Epic Games 开发的实时 3D 创作平台&#xff0c;用于制作游戏、电影、动画、建筑可视化和其他类型的交互式体验。UE5 提供了一系列强大…

解锁IDEA中Git/SVN Issue Navigation功能:80%程序员都不懂的秘密武器~

文章目录 前言什么是 Git Issue Navigation&#xff1f;配置 Git Issue Navigation1. 打开设置2. 导航到 Issue Navigation 设置3. 添加新的 Issue Navigation 规则具体示例配置 使用 Git Issue Navigation在提交信息中使用 Issue ID实际导航到连接 优点1. 快速定位问题2. 提高…

可重入锁思想,设计MQ迁移方案

如果你的MQ消息要从Kafka切换到RocketMQ且不停机&#xff0c;怎么做&#xff1f;在让这个MQ消息调用第三方发奖接口&#xff0c;但无幂等字段又怎么处理&#xff1f;今天小傅哥就给大家分享一个关于MQ消息在这样的场景中的处理手段。 这是一种比较特例的场景&#xff0c;需要保…

6月28日华为云数据库斯享会上海站,NineData技术总监薛晓乐受邀并带来主题分享

6月28日&#xff08;周五&#xff09;&#xff0c;华为云数据库斯享会即将在上海举办&#xff0c;将与的开发者朋友们一起进行数据库技术交流&#xff01;NineData 技术总监薛晓乐受邀参会&#xff0c;并将带来《企业级数据库 DevOps 最佳实践》的主题分享。 本次活动议程&…

ROS2 分布式 及 ssh远程控制 和 上传文件夹

问题1. 多台计算机连接同一wifi后 &#xff0c;运行ROS2的小乌龟案例&#xff0c;自己的计算机&#xff0c;无法控制其他电脑的小乌龟 按照正常的情况来说&#xff0c;ROS2是DDS的自发现通信机制&#xff0c;只要处在同一wifi网络中&#xff0c; A计算机执行启动小乌龟的命…