Python学习(2):注释、数字、文本、列表

news2025/1/4 0:37:47

1 关于注释

        Python 使用井号#作为单行注释的符号, 使用三个连续的单引号’’'或者三个连续的双引号"""注释多行内容。

2 数字

2.1 基本运算

        解释器像一个简单的计算器:你可以输入一个表达式,它将给出结果值。 表达式语法很直观:运算符 +-* 和 / 可被用来执行算术运算;圆括号 (()) 可被用来进行分组。 例如:

print(2 + 2)
print(50 - 5*6)
print((50 - 5*6) / 4)
print(8 / 5)

        整数(如,2420 )的类型是 int,带小数(如,5.01.6 )的类型是 float。

        除法运算 (/) 总是返回浮点数。 如果要做得到一个整数结果你可以使用 // 运算符;要计算余数你可以使用 %:

print(17 / 3)  # 经典除法运算返回一个浮点数
print(17 // 3)  # 向下取整除法运算会丢弃小数部分
print(17 % 3)  # % 运算返回相除的余数

2.2 乘方

        Python 用 ** 运算符计算乘方,** 比 - 的优先级更高, 所以 -3**2 会被解释成 -(3**2) ,因此,结果是 -9。要避免这个问题,并且得到 9, 可以用 (-3)**2

print(5 ** 2)  # 5 的平方
print(2 ** 7)  # 2 的 7 次方

2.3 赋值

等号(=)用于给变量赋值,如果变量未定义(即,未赋值),使用该变量会提示not defined错误:

width = 20
height = 5 * 9
print(width * height)

        除了 int 和 float,Python 还支持其他数字类型,例如 Decimal 或 Fraction。Python 还内置支持 复数,后缀 j 或 J 用于表示虚数(例如 3+5j )。

3 文本

3.1 定义

        除了数字 Python 还可以操作文本(由 str 类型表示,称为“字符串”)。  它们可以用成对的单引号 ('...') 或双引号 ("...") 来标示,结果完全相同 。与其他语言不同,特殊字符如 \n 在单引号('...' )和双引号("..." )里的意义一样。这两种引号唯一的区别是,不需要在单引号里转义双引号 " (但此时必须把单引号转义成 \' ),反之亦然。

print('猪肉')  # 单引号
print("鸡蛋")  # 双引号
print('1975')  # 用引号括起来的数字也是字符串

3.2 转义

        要标示引号本身,我们需要对它进行“转义”,即在前面加一个 \。 或者,我们也可以使用不同类型的引号:

print('doesn\'t')  # 使用 \' 来转义单引号
print("doesn't")  # 或者改用双引号

        在 Python shell 中,字符串定义和输出字符串看起来可能不同。 print() 函数会略去标示用的引号,并打印经过转义的特殊字符,产生更为易读的输出。如果不希望前置 \ 的字符转义成特殊字符,可以使用 原始字符串,在引号前添加 r 即可:

print('C:\some\name')  # 这里 \n 表示换行符!
print(r'C:\some\name')  # 请注意引号前的 r

3.3 多行

        字符串文字可以跨越多行。一种方法是使用三重引号:"""...""" 或 '''...''' 。行尾会自动包含在字符串中,但可以通过在行尾添加 \ 来避免这种情况。 在下面的示例中,不包含首行换行符::

print("""\
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
""")

3.4 拼接

        字符串可以用 + 合并(粘到一起),也可以用 * 重复,相邻的两个或多个 字符串字面值 (引号标注的字符)会自动合并,这项功能只能用于两个字面值,不能用于变量或表达式:

print(3 * 'un' + 'ium')  # 3 乘以 'un',再加 'ium'
print('Py' 'thon')  # 自动拼接

        合并多个变量,或合并变量与字面值,要用 +

prefix = 'Py'
print(prefix + 'thon') 

3.5 索引与切片

        字符串支持 索引 (下标访问),第一个字符的索引是 0。单字符没有专用的类型,就是长度为一的字符串,索引还支持负数,用负数索引时,从右边开始计数,注意,-0 和 0 一样,因此,负数索引从 -1 开始。

print('Python'[1])
print('Python'[-1])

        除了索引操作,还支持 切片。 索引用来获取单个字符,而 切片 允许你获取子字符串。切片索引的默认值很有用;省略开始索引时,默认值为 0,省略结束索引时,默认为到字符串的结尾。注意,输出结果包含切片开始,但不包含切片结束。

word = 'Python'
print(word[:2])  # 从开头到 2 号位 (不含) 的字符
print(word[4:])  # 从 4 号位 (含) 到末尾
print(word[-2:])  # 从倒数第二个 (含) 到末尾

        索引越界会报错,但是切片会自动处理越界索引:

word = 'Python'
print(word[4:42])  
print(word[42:])  

        Python 字符串不能修改。因此,为字符串中某个索引位置赋值会报错,要生成不同的字符串,应新建一个字符串:

word = 'Python'
print('J' + word[1:])
print(word[:2] + 'py')

3.6 长度

        内置函数 len() 返回字符串的长度:

s = 'supercalifragilisticexpialidocious'
print(len(s))

4 列表

4.1 定义

        Python 支持多种 复合 数据类型,可将不同值组合在一起。最常用的 列表 ,是用方括号标注,逗号分隔的一组值。列表 可以包含不同类型的元素,但一般情况下,各个元素的类型相同。和字符串一样,列表也支持索引和切片:

squares = [1, 4, 9, 16, 25]
print(squares)
print(squares[0])  # 索引操作将返回条目
print(squares[-3:])  # 切片操作将返回一个新列表

4.2 添加与合并

        列表内容可以改变,还支持合并操作,你也可以在通过使用 list.append() 方法,在列表末尾添加新条目:

squares = [1, 4, 9, 16, 25]
squares[2] = 36
print(squares)
merged = squares + [36, 49, 64, 81, 100]
print(merged)
merged.append(121)
print(merged)

4.3 浅拷贝

        Python 中的简单赋值绝不会复制数据。 当你将一个列表赋值给一个变量时,该变量将引用 现有的列表。你通过一个变量对列表所做的任何更改都会被引用它的所有其他变量看到。:

rgb = ["Red", "Green", "Blue"]
rgba = rgb
print(id(rgb) == id(rgba))  # 它们指向同一个对象
rgba.append("Alph")
print(rgb)

        切片操作返回包含请求元素的新列表。为切片赋值可以改变列表大小,甚至清空整个列表:

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(letters)
# 替换一些值
letters[2:5] = ['C', 'D', 'E']
print(letters)
# 现在移除它们
letters[2:5] = []
print(letters)
# 通过用一个空列表替代所有元素来清空列表
letters[:] = []
print(letters)

4.4 长度与嵌套 

        内置函数 len() 也支持列表:

letters = ['a', 'b', 'c', 'd']
print(len(letters))

还可以嵌套列表(创建包含其他列表的列表),例如:

a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
print(x)

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

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

相关文章

【Maven_bugs】The project main artifact does not exist

背景:我想使用 maven-shade-plugin 打一个 fat jar 时报了标题中的错误,使用的命令是:org.apache.maven.plugins:maven-shade-plugin:shade -pl :shade-project。项目结构如下图,我想把子模块 shade-project 打成一个 fat jar&…

Wordperss漏洞 DeDeCMS漏洞

Wordperss漏洞 环境搭建 #执⾏命令 cd /vulhub/wordpress/pwnscriptum docker-compose up -d #靶场地址 http://8.155.7.173:8080/wp-admin/ 注册账号 登录 漏洞一:后台修改模板拿WebShell 步骤一:思路是修改其WP的模板写入⼀句话木马后门并访问其文件…

使用 HTML 和 CSS 实现绚丽的节日烟花效果

文章目录 1. 效果预览2. 核心技术栈3. 核心代码解读3.1 HTML结构3.2 霓虹文字的CSS样式3.2.1 核心样式代码3.2.2 动画效果 3.3 JavaScript 的烟花效果实现3.3.1 烟花上升3.3.2 粒子爆炸 4. 用户交互5. 运行步骤总结 1. 效果预览 打开后输入文本的展示内容 用户点击页面后播放…

电力场景输电线路异物检测数据集VOC+YOLO格式4370张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4370 标注数量(xml文件个数):4370 标注数量(txt文件个数):4370 …

【Next.js】002-路由篇|App Router

【Next.js】002-路由篇|App Router 文章目录 【Next.js】002-路由篇|App Router一、前言二、文件系统(file-system)1、说明2、演练创建代码运行访问让 Cursor 分析错误别偷懒,还是探究一下 Pages Router 方式吧创建代码运行并访问项目/about …

【FPGA开发】ZYNQ中PS与PL交互操作总结、BRAM,DMA原理浅析、仿真操作

文章目录 PL与PS交互综述交互端口性能&特点(选择方案的凭据)GPIO-AXI_GPDMA-DMACHP-AXI_HPACP-AXI_ACP 数据交互实验GP通过BRAMPS为主机,读写BRAMPL作为主机,读写BRAM DMA方式交互 PL与PS交互综述 网络上关于PS PL交互的教程…

构建全志 T113 Tina SDK

1、环境配置: 准备一个 Ubuntu 系统,可以是 WSL,虚拟机等,建议版本是 20.04。 1.1、安装必要的软件 进入系统后,输入下方命令安装需要的工具 : sudo apt update -y sudo apt full-upgrade -y sudo apt i…

Linux 搭建 nginx+keepalived 高可用 | Nginx反向代理

注意:本文为 “Linux 搭建 nginxkeepalived (主备双主模式) 高可用 | Nginx反向代理” 相关文章合辑。 KeepalivedNginx实现高可用(HA) xyang0917 于 2016-09-17 00:24:15 发布 keepalived 的 HA 分为抢占模式和非抢占模式,抢占…

RDFS—RDF模型属性扩展解析

目录 前言1. 什么是RDFS?1.1 RDFS的核心概念1.2 RDFS与RDF的区别 2. RDFS的基础概念2.1 类(Class)2.2 属性(Property)2.3 关系(Relation)2.4 定义域(Domain)2.5 值域&…

rust windwos 两个edit框

use winapi::shared::minwindef::LOWORD; use windows::{core::*,Win32::{Foundation::*,Graphics::Gdi::{BeginPaint, EndPaint, PAINTSTRUCT},System::LibraryLoader::GetModuleHandleA,UI::WindowsAndMessaging::*,}, };// 两个全局静态变量,用于保存 Edit 控件的…

Python Polars快速入门指南:LazyFrames

前文已经介绍了Polars的Dataframe, Contexts 和 Expressions,本文继续介绍Polars的惰性API。惰性API是该库最强大的功能之一,使用惰性API可以设定一系列操作,而无需立即运行它们。相反,这些操作被保存为计算图,只在必要…

常见CMS漏洞(wordpress,DedeCms,ASPCMS,PHPMyAdmin)

练习一:wordpress漏洞测试 1.上传包含木马的主题 安装网站 登陆网站 上传主题处测试漏洞注入 在上传主题模板压缩包中写入一句话木马 网站上传含有木马的zip压缩包 上传成功 wordpress主题目录 wp-content/themes 访问上传木马测试 2.修改主题的配置文件为含有木马的文件 练习…

【Java数据结构】LinkedList与链表

认识LinkedList LinkedList就是一个链表,它也是实现List接口的一个类。LinkedList就是通过next引用将所有的结点链接起来,所以不需要数组。LinkedList也是以泛型的方法实现的,所以使用这个类都需要实例化对象。 链表分为很多种,比…

基于 Ragflow 搭建知识库-初步实践

基于 Ragflow 搭建知识库-初步实践 一、简介 Ragflow 是一个强大的工具,可用于构建知识库,实现高效的知识检索和查询功能。本文介绍如何利用 Ragflow 搭建知识库,包括环境准备、安装步骤、配置过程以及基本使用方法。 二、环境准备 硬件要…

【我的 PWN 学习手札】IO_FILE 之 stdout任意地址读

上一篇文章学会了stdin任意地址写【我的 PWN 学习手札】IO_FILE 之 stdin任意地址写-CSDN博客 本篇关注stdout利用手法,和上篇提及的手法有着异曲同工之妙 文章目录 前言 一、_IO_2_1_stdout_输出链,及利用思路 (一)_IO_2_1_std…

一网多平面

“一网多平面”是一种网络架构概念,具体指的是在一张物理网络之上,逻辑划分出“1N”个平面。以下是对“一网多平面”的详细解释: 定义与构成 01一网多平面 指的是在统一的物理网络基础设施上,通过逻辑划分形成多个独立的网络平面…

设计模式之状态模式:自动售货机的喜怒哀乐

~犬📰余~ “我欲贱而贵,愚而智,贫而富,可乎? 曰:其唯学乎” 一、状态模式概述 \quad 在我们的日常生活中,很多事物都具有不同的状态。比如我们经常使用的自动售货机,它就具有多种状态…

信息系统管理工程第8章思维导图

软考信管第8章的思维导图也实在是太长了,制作的耗时远超过之前的预计。给你看看思维导图的全貌如下,看看你能够在手机上滚动多少个屏幕 当你看到这段文字的时候,证明你把思维导图从上到下看完了,的确很长吧,第8章的教程…

Excel无法插入新单元格怎么办?有解决方法吗?

在使用Excel时,有时会遇到无法插入新单元格的困扰。这可能是由于多种原因导致的,比如单元格被保护、冻结窗格、合并单元格等。本文将详细介绍3种可能的解决方案,帮助你顺利插入新单元格。 一、消冻结窗格 冻结窗格功能有助于在滚动工作表时保…

深度学习笔记(12)——深度学习概论

深度学习概论 深度学习关系: 为什么机器人有一部分不在人工智能里面:机器人技术是一个跨学科的领域,它结合了机械工程、电子工程、计算机科学以及人工智能(AI)等多个领域的知识。 并不是所有的机器人都依赖于人工智能…