【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种)

  1. 格式一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语言无法这样。

  2. 格式二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格式可以使表达式不拘泥于顺序,而按键值配对,更加灵活
  3. 格式三print(f"普通字符{常量、变量、表达式}")

    year = 2023
    print(f"我的年龄是{18}岁,今年是{year}年,1+2={1+2}")
    

    f - 格式化字符串(Python3.6新增百分号输出格式format 输出格式更加高效简洁


format 格式总结

格式样例输出说明
{:.nf}{:.0f} 3.14153保留n位小数(n = 0,1…)
{:+.nf}{:+.2f} 3.1415+3.14带符号保留n位小数
{:m>nd}{:0>3d} 1001向左补0
{:m<nd}{:x<3d} 11xx向右补x
{:>nd}{:>3d} 1右对齐
{:<nd}{:<3d} 1左对齐
{:^nd}{:^3d} 1中间对齐
{:,}{:,} 100000100,000千位分隔符
{:%}{:.0%} 0.550%百分比格式
{:e}{:.1e} 50000005.0e+06指数格式

输入语句

语法格式形如

str1 = input(“提示信息”)

  • 输出提示信息后,等待用户输入
  • 一般存储至变量中,如password = input("请输入密码:")
  • 所有用户输入都视作字符串类型,如果后续用于数值比较,需要转换数据类型

显然,Python 优化了C语言中的输入语句,将用户提示输出语句输入绑定在一起。


基本语句

if 语句

i = 0;
if i > 1:# 逻辑代码pass
elif i < -1:# 逻辑代码pass
else:# 逻辑代码pass

ifelifelse划分分支,常用于单变量分类讨论。可以嵌套,但不推荐过多的嵌套,不够优雅。

注意

  1. Python 中用关键字 elif 代替了 else if
  2. 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中的语句,现在,你可以书写一些简单的小程序了。

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

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

相关文章

1.2 数据模型

思维导图&#xff1a; 前言&#xff1a; **1.2.1 什么是模型** - **定义**&#xff1a;模型是对现实世界中某个对象特征的模拟和抽象。例如&#xff0c;一张地图、建筑设计沙盘或精致的航模飞机都可以视为具体的模型。 - **具体模型与现实生活**&#xff1a;具体模型可以很容…

2023/9/27 -- ARM

【汇编语言相关语法】 1.汇编语言的组成部分 1.伪操作&#xff1a;不参与程序的执行&#xff0c;但是用于告诉编译器程序该怎么编译 .text .global .end .if .else .endif .data2.汇编指令 编译器将一条汇编指令编译成一条机器码&#xff0c;在内存里一条指令占4字节内…

【C++ 学习 ㉕】- 万字详解 unordered_map 和 unordered_set(哈希表的查找和容器的模拟实现)

目录 一、unordered_map 的基本介绍 二、unordered_set 的基本介绍 三、相关练习 3.1 - 在长度 2N 的数组中找出重复 N 次的元素 3.2 - 存在重复元素 3.3 - 两句话中的不常见单词 四、哈希表的查找 4.1 - 哈希表的基本概念 4.2 - 哈希函数的构造方法 4.3 - 处理冲突的…

UG\NX二次开发 获取所有子部件,封装两个函数

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 凉夜ronin 订阅本专栏,非常感谢。 简介 UG\NX二次开发 获取所有子部件,封装两个函数 效果 获取非抑制的所有子部件 //获取非抑制的所有子部件 vector<tag_t> GetChildPart(tag_t partOcc) {…

深度学习(3)---PyTorch中的张量

文章目录 一、张量简介与创建1.1 简介1.2 张量的创建 二、张量的操作2.1 张量的拼接与切分2.2 张量索引 三、张量的数学运算 一、张量简介与创建 1.1 简介 1. 张量是一个多维数组&#xff0c;它是标量、向量、矩阵的高维拓展。 2. 在张量的定义中&#xff0c;方括号用于表示张…

小谈设计模式(16)—抽象工厂模式

小谈设计模式&#xff08;16&#xff09;—抽象工厂模式 专栏介绍专栏地址专栏介绍 抽象工厂模式结构抽象工厂&#xff08;AbstractFactory&#xff09;具体工厂&#xff08;ConcreteFactory&#xff09;抽象产品&#xff08;AbstractProduct&#xff09;具体产品&#xff08;C…

MyBatisPlus(十)判空查询

说明 判空查询&#xff0c;对应SQL语句中的 IS NULL语句&#xff0c;查询对应字段为 NULL 的数据。 isNull /*** 查询用户列表&#xff0c; 查询条件&#xff1a;电子邮箱为 null 。*/Testvoid isNull() {LambdaQueryWrapper<User> wrapper new LambdaQueryWrapper<…

项目进展(三)-电机驱动起来了,发现了很多关键点,也遇到了一些低级错误,

一、前言 昨天电机没有驱动起来&#xff0c;头发掉一堆&#xff0c;不过今天&#xff0c;终于终于终于把电机驱动起来了&#xff01;&#xff01;&#xff01;&#xff01;&#xff0c;特别开心&#xff0c;哈哈哈哈&#xff0c;后续继续努力完善&#xff01;&#xff01;&…

Spring更简单的读取和存储对象

Spring更简单的读取和存储对象 经过前面的学习&#xff0c;我们已经可以实现基本的 Spring 读取和存储对象的操作了&#xff0c;但在操作的过程中我们发现读取和存储对象并没有想象中的那么“简单”&#xff0c;所以接下来我们要学习更加简单的操作 Bean 对象的方法。 在 Spri…

【简单了解一下红黑树】

文章目录 红黑树1.简介2.为什么需要红黑树&#xff1f;3.性质4. 红黑树的效率4.1 红黑树效率4.2 红黑树和AVL树的比较 5.AVL树 vs 红黑树5.1 AVL树5.2 红黑树5.3 如何选择 红黑树 1.简介 红黑树是一种自平衡的二叉查找树&#xff0c;是一种高效的查找树。它是由 Rudolf Bayer …

【image captioning】CaMEL: Mean Teacher Learning for Image Captioning(实现流程)

CaMEL: Mean Teacher Learning for Image Captioning(实现流程) 作者:安静到无声 个人主页 目录 CaMEL: Mean Teacher Learning for Image Captioning(实现流程)环境设置数据准备Evaluation训练程序推荐专栏参考代码: CaMEL: Mean Teacher Learning for Image Captioning.…

视频二维码的制作方法,支持内容修改编辑

现在学生经常会需要使用音视频二维码&#xff0c;比如外出打开、才艺展示、课文背诵等等。那么如何制作一个可以长期使用的二维码呢&#xff1f;下面来给大家分享一个二维码制作&#xff08;免费在线二维码生成器-二维码在线制作-音视频二维码在线生成工具-机智熊二维码&#x…

Vue+element开发Simple Admin后端管理系统页面

最近看到各种admin&#xff0c;头大&#xff0c;内容太多&#xff0c;根本不知道怎么改。所以制作了这个项目&#xff0c;只包含框架、和开发中最常用的表格和表单&#xff0c;不用自己从头搭建架构&#xff0c;同时也容易上手二次开发。可以轻松从其他开源项目整合到本项目。项…

C/C++:[Error] ld returned 1 exit status 解决方案

好久没用了&#xff0c;今天写了会儿代码&#xff0c;各种BUg,emmmmmm 出现了很多次以下这个问题&#xff1a;[Error] ld returned 1 exit status 可能问题&解决方式&#xff1a; 常见的语法/单词拼写错误&#xff1a;常见的Main,printf,scanf等拼写错误 函数名或者声明有…

QT商业播放器

QT商业播放器 总体架构图 架构优点&#xff1a;解耦&#xff0c;采用生产者消费者设计模式&#xff0c;各个线程各司其职&#xff0c;通过消息队列高效协作 这个项目是一个基于ijkplayer和ffplayer.c的QT商业播放器, 项目有5部分构成&#xff1a; 前端QT用户界面 后端是集成了…

制作电子期刊没模板?请疯狂看我

你们是不是也在为制作电子期刊而烦恼&#xff1f;没有合适的模板&#xff0c;内容再精彩也难以展现。今天给大家分享一个超级实用的秘籍&#xff01;✨ 首先&#xff0c;我们要明白&#xff0c;电子期刊制作的关键在于模板的选择。一个好的模板可以让你的内容瞬间焕发光彩。但是…

分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测

分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测 目录 分类预测 | MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结合支持向量机分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现SSA-FS-SVM麻雀算法同步优化特征选择结…

OOTD | 美式复古穿搭耳机,复古轻便的头戴式耳机推荐

复古耳机更能带来年代感的复古数码产品&#xff0c;头戴式耳机就好似是时光滤镜的时髦配饰&#xff0c;不说功能实用性&#xff0c;在造型上添加就很酷。 随着时代的发展&#xff0c;时尚有了新的定义。对如今的消费者来说&#xff0c;时尚不仅是美学与个性的展现&#xff0c;…

C10K问题:高并发模型设计

一、循环服务器模型 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <signal.h> #include <sys/types.h> #include <sys/socket.h> //*******// #include &l…

头戴式耳机怎么戴好看?头戴式耳机正确代法

走在大街上总能看到那么一些人&#xff0c;他们眼神时而朦胧涣散&#xff0c;时而精神奕奕&#xff0c;全身上下始终散发着#请勿打扰#的气息&#xff0c;因为他们都戴着头&#xff01;戴&#xff01;式&#xff01;耳&#xff01;机&#xff01;但是头戴式耳机把头压得扁扁的&a…