【Python基础】4. 基本语句
文章目录
- 注释(Comment)
- 解释伴随行
- 文本编码问题
- 输入输出语句(Input & Output)
- 输出语句
- 普通输出
- 格式化输出(3种)
- format 格式总结
- 输入语句
- 基本语句
- if 语句
- match 语句(Python3.10 新增)
- for 循环语句
- while 循环语句
- while/for .. else语句
- continue 语句
- break 语句
- return 语句
- pass 语句
- 总结
注释(Comment)
- 单行注释
# 注释内容
#
井号,只能单行注释。 - 多行注释
由'''2023.1.21新年好! ''' """除了单引号双引号也可以哦 """
'''
或"""
包裹,可以多行注释,一般用于解释函数或程序功能。
解释伴随行
在一些编辑器中,新建 Python 模板会自带形如#!/usr/bin/env python
的注释 。
实际上,#!
是类Unix系统中的Shebang
符号,即解释伴随行。该代码告诉操作系统执行该脚本时,调用系统环境下的 python 解释器。可以在git bash
中使用,直接调用文件名执行。
$ ./test.py
在Windows系统中,该代码实际无效,可以删除。例如在power shell
中运行,仍需采用python [file]
形式调用。
python test.py
文本编码问题
在新建 Python 模板往往会自带以下注释之一,一般位于文件开头前两行。
# coding = utf-8
# -*- coding: utf-8 -*-
解释器会读取该注释,并按指定文本编码解码,从而避免乱码问题。
在Python2.x版本中,默认编码格式为ASCII,而Python3.x中,默认编码格式为UTF-8。
如果出现中文乱码或报错现象,可以指定编码格式为GBK。大小写皆可。
# coding = GBK
# coding = gbk
# -*- coding: GBK -*-
# -*- coding: gbk -*-
输入输出语句(Input & Output)
输入输出语句是实现人机交互的关键。
输出语句
完整格式形如print(*object(s), sep=' ', end='\n', file = sys.stdout, flush = False)
参数 | 含义 |
---|---|
*object(s) | 任意数量的输出,以逗号, 分隔 |
sep | 可选,指定如何分割多个输出对象,默认为空格' ' |
end | 可选,指定在末尾打印的内容,默认为换行'\n' |
file | 可选,写入方法的对象,默认为sys.stdout |
flush | 可选,指定输出是刷新(True )还是缓冲(False )。默认为False |
普通输出
语法格式形如
print(常量、变量、表达式列表)
实例为
print("Hello world")
a = 1
print(a)
print(2)
print(a, 2)
-
Python 可以同时输出多个值,输出结果由空格分隔,这是由
sep
参数默认为空格' '
决定的。而C语言必须书写多个格式声明才能实现。可见 Python 的输出功能更加简洁、强大。 -
Python 中一个 print 输出结束后会自动换行,而C语言的 printf 不会。这是由
end
参数默认为换行'\n'
决定的。
格式化输出(3种)
-
格式一:
print(格式控制 % 输出列表)
print("我今年的年龄%d" % 18) print("酒精浓度为%s%%" % 50) print("今年是%d,去年是%d,明年是%d" % (2023, 2022, 2024)) print("今年是%s,去年是%s,明年是%s" % (2023, 2022, 2024))
该格式与C语言类似。多个输出时用小括号包裹。输出百分号使用两个连续的百分号
%%
。Python 中
%s
既可以输出字符串,也可以输出整型和浮点型。C语言无法这样。 -
格式二:
print("普通字符{format格式}".format(输出列表))
# 无编号 print("我今年的年龄{}".format(18)) print("今年是{},去年是{},明年是{}".format(2023, 2022, 2024)) # 带编号 print("今年是{0},去年是{1},明年是{2}".format(2023, 2022, 2024)) print("今天是{0}年的尾声,你好{0},再见{0}".format(2022) # 带键值 print("我是{a},她是{b},{b}喜欢{a}".format(a = "小明", b = "小红"))
- format格式功能非常强大,风格与 C# 类似。详见 format 格式总结。
- 带编号的format格式在重复使用某些变量时具备优势,使得表达简洁,灵活。
- 带键值的format格式可以使表达式不拘泥于顺序,而按键值配对,更加灵活。
-
格式三:
print(f"普通字符{常量、变量、表达式}")
year = 2023 print(f"我的年龄是{18}岁,今年是{year}年,1+2={1+2}")
f - 格式化字符串(Python3.6新增) 比百分号输出格式与format 输出格式更加高效简洁。
format 格式总结
格式 | 样例 | 输出 | 说明 |
---|---|---|---|
{:.nf} | {:.0f} 3.1415 | 3 | 保留n位小数(n = 0,1…) |
{:+.nf} | {:+.2f} 3.1415 | +3.14 | 带符号保留n位小数 |
{:m>nd} | {:0>3d} 1 | 001 | 向左补0 |
{:m<nd} | {:x<3d} 1 | 1xx | 向右补x |
{:>nd} | {:>3d} 1 | 右对齐 | |
{:<nd} | {:<3d} 1 | 左对齐 | |
{:^nd} | {:^3d} 1 | 中间对齐 | |
{:,} | {:,} 100000 | 100,000 | 千位分隔符 |
{:%} | {:.0%} 0.5 | 50% | 百分比格式 |
{:e} | {:.1e} 5000000 | 5.0e+06 | 指数格式 |
输入语句
语法格式形如
str1 = input(“提示信息”)
- 输出提示信息后,等待用户输入
- 一般存储至变量中,如
password = input("请输入密码:")
- 所有用户输入都视作字符串类型,如果后续用于数值比较,需要转换数据类型。
显然,Python 优化了C语言中的输入语句,将用户提示输出语句和输入绑定在一起。
基本语句
if 语句
i = 0;
if i > 1:# 逻辑代码pass
elif i < -1:# 逻辑代码pass
else:# 逻辑代码pass
由if
、elif
、else
划分分支,常用于单变量分类讨论。可以嵌套,但不推荐过多的嵌套,不够优雅。
注意:
- Python 中用关键字
elif
代替了else if
。 pass
关键词用于给未完成的逻辑代码占位,避免语法报错。
match 语句(Python3.10 新增)
i = 1;
match i:case 0:# 逻辑代码passcase 1:# 逻辑代码passcase 2|3:# 逻辑代码passcase _:# 逻辑代码pass
match 语句用于多分支离散型数据分类。Python3.10 新增。
-
case _
类似C语言中的default,可以匹配任意字段。 -
当不同 case 子句的语句块一致,可以通过
|
设置多个匹配条件,共用语句块。
从形式和上述用法上match 语句和 C语言中的switch 语句几乎没什么不同,而且使用 if 语句也完全可以实现上述需求,那这种新特性的意义何在?
实际上,match 语句适用范围远远不止上述字面量的分类判断。列举一个比较重要的特性:match 语句可以将match
后的待匹配变量的值,赋值给case
后的变量
def func1(name):match name:case "":print("...")case myName:print(f"Hi, my name is {myName}!")
func1("TOM") # Hi, my name is TOM!
for 循环语句
# 1
str1 = "abcdef" # 字符串序列
for i in str:print(i)# 2
for i in range(1, 6):print(i) # 1 2 3 4 5# 3
str1 = "abcdef" # 字符串序列
for i, j in enumerate(str):print(f"第{i}个字母为{j}")# 4. 错误示例
list1 = [1, 2, 3, 4, 5]
for i, num in enumerate(list1):if num == 2:list1.remove(list1[i])print(num) # 1 2 4 5 与预期输出不符# 5. 正确示例
list1 = [1, 2, 3, 4, 5]
for i, num in enumerate(list1.copy()):if num == 2:list1.remove(list1[i])print(num) # 1 2 3 4 5
for 循环一般用于可迭代对象的遍历。
如对列表等可变类型进行循环操作 ,涉及增改删时需慎重。这些操作会改变原有列表元素,从而导致遍历结果异常。
正确且常用的操作是将列表通过copy
方法复制一份,对该复制列表进行遍历即可。
while 循环语句
i = 0
while i <= 5:# 逻辑代码i += 1
while 循环与 for 循环往往可以等价替换,常用于退出条件明确而循环次数未知的情况。
在游戏编程中,我们往往习惯用While True
无限循环包裹。
while/for … else语句
# 1. while..else
i = 0
while i <= 5:print(i)i += 1
else: # 循环正常退出时执行print("循环结束!")# 2. for..else
str1 = "abcdef"
for str in str1:print(str)
else: # 循环正常退出时执行print("正常结束!")
else 关键字可以和循环配合使用,这是C语言所不具备的特性。当循环正常退出时执行 else 后的代码。
注:break 会影响 else 的执行,continue 不会影响。
continue 语句
continue
用于循环语句中,跳过当前循环,继续下一个循环。注意计数器是否变化,否则容易死循环。
break 语句
break
用于循环语句或 switch 语句中,跳出当前层循环,不能跳出多层循环。
return 语句
# 无变量
return# 单个变量
return True
return x
return a+b# 多个变量
return a, b # 默认以元组形式返回
return (a, b) # 与上式等效
return [a, b] # 以列表形式返回
return {'1': a, '2': b} # 以字典形式返回
用于函数中,可以跳出当前函数。当缺省时,实际返回None
。
特别的,Python支持同时返回多个变量,默认以元组类型打包。这是C语言所不具备的。
pass 语句
pass
表示什么都不做。在编程的过程中,可以先用 pass
关键字占位,后续再补充逻辑。
总结
本章总结了诸多Python中的语句,现在,你可以书写一些简单的小程序了。
相关文章:
【Python基础】4. 基本语句
文章目录 注释(Comment)解释伴随行文本编码问题 输入输出语句(Input & Output)输出语句普通输出格式化输出(3种)format 格式总结 输入语句 基本语句if 语句match 语句(Python3.10 新增&…...
兼顾友好与安全,隐私协议 Unijoin 助推新一轮 Web3 浪潮
区块链本身不仅崇尚去中心化,同时也崇尚公开透明,虽然这正在让 DAO 治理等变得更加公平,但它同时也是一把双刃剑,个人交易者尤其是一些巨鲸交易者的所以链上交易都被公之于众,这似乎并不是他们想要的结果。 所以从加密…...

TCP端口崩溃,msg:socket(): Too many open files
一、现象 linux系统中运行了一个TCP服务器,该服务器监听的TCP端口为10000。但是长时间运行时发现该端口会崩溃,TCP客户端连接该端口会失败: 可以看到进行三次握手时,TCP客户端向该TCP服务器的10000端口发送了SYN报文,…...

基于Laravel 5.6的运动健身类小程序前后端源码
基于Laravel 5.6的运动健身、健康类小程序前后端源码,一套比较基础的运动健康、健身类小程序源码。朋友自己无聊写的,比较基础,有需要的可以拿去修修改改升级开发一下。 使用宝塔安装,比较省事,PHP相关的扩展需要启用…...

NodeMCU ESP8266硬件开发板的熟悉
文章目录 硬件开发环境的熟悉基础介绍什么是 ESP8266 NodeMCU?NodeMCU芯片ESP12-E 模组开发板 ESP8266 版本引脚图Power GND I2CGPIOADCUARTSPIPWMControl 总结 硬件开发环境的熟悉 基础介绍 什么是 ESP8266 NodeMCU? ESP8266是乐鑫开发的一款低成本 …...

计算机毕业设计 基于SSM的在线预约导游系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

Mac 挂载 Alist网盘
挂载服务器的Alist 网盘到 Mac mac,使用的是 CloundMounter 这个软件进行挂载 http://ip:port/dav/ 需要在末尾加上 /dav/ 在一些服务器上,为了提供WebDAV服务,需要在URL地址的末尾添加"/dav/“。这是因为WebDAV协议规定了一些标准的URL路径&#x…...

【多模态融合】TransFusion学习笔记(1)
工作上主要还是以纯lidar的算法开发,部署以及系统架构设计为主。对于多模态融合(这里主要是只指Lidar和Camer的融合)这方面研究甚少。最近借助和朋友们讨论论文的契机接触了一下这方面的知识,起步是晚了一点,但好歹是开了个头。下面就借助TransFusion论文…...

(二)正点原子STM32MP135移植——TF-A移植
目录 一、TF-A概述 二、编译官方代码 2.1 解压源码 2.2 打补丁 2.3 编译准备 (1)修改Makfile.sdk (2)设置环境变量 (3)编译 三、移植 3.1 复制官方文件 3.2 修改电源 3.3 修改TF卡和emmc 3.4 添…...

将二叉搜索树转化为排序的双向链表
链接: LCR 155. 将二叉搜索树转化为排序的双向链表 题解: /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node() {}Node(int _val) {val _val;left NULL;right NULL;}Node(int _val, Node* _left…...

电脑dll丢失应该怎么解决,dll文件丢失怎么恢复方法分享
DLL(Dynamic Link Library,动态链接库)是一种可执行文件,它包含了在程序运行时需要调用的代码和资源。DLL 文件的主要作用是实现代码和资源的共享,这样在多个程序之间就可以避免重复的代码和资源,从而节省系…...

通达信和同花顺能否实现程序化自动交易股票,量化交易如何实现?
以下写给正在寻找自动交易接口的朋友,首先,不是那种设置个简单条件的条件单,或者某些客户端上形同鸡肋的策略交易,那些策略根本称不上策略,还有各种限制,不支持这个不支持那个,可设置的参数也不…...

基于Kylin的数据统计分析平台架构设计与实现
目录 1 前言 2 关键模块 2.1 数据仓库的搭建 2.2 ETL 2.3 Kylin数据分析系统 2.4 数据可视化系统 2.5 报表模块 3 最终成果 4 遇到问题 1 前言 这是在TP-LINK公司云平台部门做的一个项目,总体包括云上数据统计平台的架构设计和组件开发,在此只做…...

Linux CentOS7 vim寄存器
计算机中通常所说的寄存器Register一般指的是CPU中的寄存器,用来暂存CPU处理所需要的指令、数据等。 vim中同样也有寄存器,使用的方式和CPU非常类似。 vim中的寄存器(register)作用和windows中的剪切板类似,不过vim中的寄存器不止一个&…...

摄影后期图像编辑软件Lightroom Classic 2023 mac中文特点介绍
Lightroom Classic 2023 mac是一款图像处理软件,是数字摄影后期制作的重要工具之一,lrc2023 mac适合数字摄影后期制作、摄影师、设计师等专业人士使用。 Lightroom Classic 2023 mac软件特点 高效的图像管理:Lightroom Classic提供了强大的图…...

一种4g扫码付费通电控制器方案
之前开发了一款扫码付款通电控制器 功能:用户扫码付款后设备通电,开始倒计时,倒计时结束后设备断电,资金到账商家的商家助手里面,腾讯会收取千分之6手续费。 产品主要应用场景 本产品主要应用于各类无人值守或者自助…...

桌面自动化工具总结
引言:产品经理提出桌面程序需要自动化的测试,避免繁琐的人肉点击。说干就干。 现有自动化工具是五花八门,我找了两个框架。 这两个框架都是基于微软的UIA 框架,链接地址 https://learn.microsoft.com/en-us/windows/win32/winauto/uiauto-providerportal?source=recommen…...
Python入门教程 | Python 常用标准库概览
Python3 标准库概览 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,使用标准库我们可以让您轻松地完成各种任务。 以下是一些 Python3 标准库中的模块: os 模块:os 模块提供了许多与操作系统交互的函数,例如创…...

【JavaScript】读取本地json文件并绘制表格
本文为避免跨域问题,使用了改造过的本地json文件的方法实现读取json数据并绘制表格。 如果发起http请求获取本地 json文件中数据,需要架设本地服务器,本文不做阐述。 概述 1、json在本地,并不需要从服务器下载。 2、采用jquery…...
前端笔试题总结,带答案和解析(一)
1. 执行以下程序,输出结果为() var x 10; var y 20; var z x < y ? x:y; console.log(xx;yy;zz);A x11;y21;z11 B x11;y20;z10 C x11;y21;z10 D x11;y20;z11 初始化x的值为10,y的值为20,x < y返回结果为tru…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...