当前位置: 首页 > news >正文

【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.lryc.cn/news/182849.html

相关文章:

  • 兼顾友好与安全,隐私协议 Unijoin 助推新一轮 Web3 浪潮
  • TCP端口崩溃,msg:socket(): Too many open files
  • 基于Laravel 5.6的运动健身类小程序前后端源码
  • NodeMCU ESP8266硬件开发板的熟悉
  • 计算机毕业设计 基于SSM的在线预约导游系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Mac 挂载 Alist网盘
  • 【多模态融合】TransFusion学习笔记(1)
  • (二)正点原子STM32MP135移植——TF-A移植
  • 将二叉搜索树转化为排序的双向链表
  • 电脑dll丢失应该怎么解决,dll文件丢失怎么恢复方法分享
  • 通达信和同花顺能否实现程序化自动交易股票,量化交易如何实现?
  • 基于Kylin的数据统计分析平台架构设计与实现
  • Linux CentOS7 vim寄存器
  • 摄影后期图像编辑软件Lightroom Classic 2023 mac中文特点介绍
  • 一种4g扫码付费通电控制器方案
  • 桌面自动化工具总结
  • Python入门教程 | Python 常用标准库概览
  • 【JavaScript】读取本地json文件并绘制表格
  • 前端笔试题总结,带答案和解析(一)
  • LeetCode 202 快乐数
  • 国庆作业day6
  • 李沐深度学习记录4:12.权重衰减/L2正则化
  • 堆--数组中第K大元素
  • ipad使用技巧
  • Windows系统上使用CLion远程开发Linux程序
  • github搜索技巧
  • Python生成器
  • flutter开发实战-使用FutureBuilder异步数据更新Widget
  • 1.2 数据模型
  • 【实用工具】谷歌浏览器插件开发指南