【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…...
LeetCode 202 快乐数
今天再次做到需要int转化成String,从而方便运算的题目。(当然还可以直接使用int运算也是没问题的) 再次出现了我容易弄混淆的问题,Integer.valueOf和ASCII码转化的差异? 其实之前我以及有记录过该问题,详…...
国庆作业day6
服务器 #include <my_head.h> #define IP "192.168.101.66" #define PORT 6666 int main(int argc, const char *argv[]) {//创建套接字int fd socket(AF_INET, SOCK_STREAM, 0);if(fd < 0){ERR_MSG("socket");return -1;}struct sockaddr_in s…...
李沐深度学习记录4:12.权重衰减/L2正则化
权重衰减从零开始实现 #高维线性回归 %matplotlib inline import torch from torch import nn from d2l import torch as d2l#整个流程是,1.生成标准数据集,包括训练数据和测试数据 # 2.定义线性模型训练 # 模型初始化(函…...
堆--数组中第K大元素
如果对于堆不是太认识,请点击:堆的初步认识-CSDN博客 解题思路: /*** <h3>求数组中第 K 大的元素</h3>* <p>* 解体思路* <ol>* 1.向小顶堆放入前k个元素* 2.剩余元素* 若 < 堆顶元素, 则略过* …...
ipad使用技巧
1、goodnotes中批量导入pdf文件 法一: 直接参考视频: 【目前为止所知iPad上goodnotes批量导入网盘文件最快的方法】 大致步骤:pdf文件传到百度网盘,然后ES软件登录百度网盘,在goodnotes中导入,选择ES&a…...
Windows系统上使用CLion远程开发Linux程序
CLion远程开发Linux程序 情景说明Ubuntu配置CLion配置同步 情景说明 在Windows系统上使用CLion开发Linux程序,安装CLion集成化开发环境时会自动安装cmake、mingw,代码提示功能也比较友好。 但是在socket开发时,包含sys/socket.h头文件时&am…...
github搜索技巧
指定语言 language:java 比如我要找用java写的含有blog的内容 搜索项目名称包含关键词的内容 vue in:name 其他如项目描述跟项目文档,如下 组合使用 vue in:name,description,readme 根据Star 或者fork的数量来查找 总结 springboot vue stars:>1000 p…...
Python生成器
生成器 Generators 要理解生成器,首先要理解迭代器,迭代器由以下三个部分组成: 可迭代对象(iterable)迭代器(iterator)迭代(iteration) 1. 可迭代对象 只要定义了可以…...
flutter开发实战-使用FutureBuilder异步数据更新Widget
flutter开发实战-使用FutureBuilder异步数据更新Widget 在开发过程中,经常遇到需要依赖异步数据更新Widget的情况,如下载图片后显示Widget,获取到某个数据时候,显示在对应的UI界面上,都可以使用FutureBuilder异步数据…...
1.2 数据模型
思维导图: 前言: **1.2.1 什么是模型** - **定义**:模型是对现实世界中某个对象特征的模拟和抽象。例如,一张地图、建筑设计沙盘或精致的航模飞机都可以视为具体的模型。 - **具体模型与现实生活**:具体模型可以很容…...
云服务器做网站好吗/手机seo关键词优化
时间戳与时间之间的转换,需要一个中间过程,即将先将时间或时间戳先转为时间元组! 1、时间转时间戳: import datetime, time s datetime.datetime(2016,6,22) time.mktime(s.timetuple())# 1466524800.0 2、时间戳转时间: timeTup…...
防腐木用什么名字做网站/网络营销专业课程
计算机汇编语言入门微处理器体系结构基本微处理器设计由时钟同步所有CPU 操作控制器(CU) 协调各执行步骤的顺序运算器(ALU) 进行算术运算和逐位处理时钟同步所有CPU 和总线操作机器(时钟)周期是完成单个操作的时间时钟用来触发事件指令执行周期取指令译码取操作数执行指令输出存…...
推广互联网推广/独立站seo建站系统
来源:AI科学投资——崇尚科学,探讨科学的投资理念和方法 践行科技,打造AI时代新智能投研平台 作者:Quant_Andy 误解一 所有的量化投资都是一样的 实际上,量化投资只是一个宽泛的概念,且不说P派Q派的理念…...
渭南网站建设wifi/建站开发
接口平台需要解决的一个重要的问题就是让用户更加高效管理环境,这个也是可以体现平台对比直接代码脚本其中一个重要的优势 功能模块 抽取需要在全局管理的功能模块如下: 1. 全局变量 配置全局变量信息,该变量在该项目所有地方均可使用 重…...
做软件贵还是做网站贵/新产品的推广销售方法
package com.jh.test01;public class AutoLion {// 属性: 颜色 黄色String color "黄色";// 函数:跑,叫;// 跑public void run() {System.out.println("跑得很快哦");}// 叫public String bark() {return"吼--叫";}/** 获取颜色的函数。*/ // i…...
广州美霖室内设计学校/seo培训教程视频
Collections工具类与泛型的使用 Collections工具类的使用 ●Collections是一个操作Set、List 和Map等集合的工具类 ●Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法 Co…...