百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Python 基础入门:变量与数据类型全解析

itomcoil 2025-02-26 12:28 34 浏览

在 Python 的编程世界里,变量与数据类型是基础中的基础,就像盖房子的基石,掌握好它们,才能构建出更复杂、更强大的程序。今天,就让我们一起深入了解 Python 中的变量以及常见的数据类型:数字、字符串、列表、元组、字典和集合。

一、变量:数据的 “小标签”

变量,简单来说,就是给数据起的一个名字,是程序中存储数据的 “小标签”。在 Python 中,变量的使用十分灵活,因为它是动态类型语言,变量的类型由赋给它的值来决定 。比如:

x = 10  # 此时x是整数类型,就像给整数10贴上了x这个标签
x = "Python"  # 这里x又变成了字符串类型,标签x现在贴在了字符串“Python”上

变量命名规则

  • 组成规则:变量名由字母、数字和下划线组成,但不能以数字开头。例如user_name、price2、_count都是合法的变量名;而2nd_place(数字开头)、user-name(含减号)则是错误的命名。
  • 大小写敏感:Age和age是两个不同的变量,就好比两个不同的 “小标签”。
  • 避开关键字:Python 有一些保留的关键字,像if、for、class等,不能用作变量名。比如class = "A"就会报错,因为class是关键字。

二、数字类型:数学运算的基石

数字类型是 Python 中最基本的数据类型之一,主要包含整数(int)和浮点数(float)。

整数(int)

整数就是没有小数部分的数字,例如42、-3 。在 Python 中,整数的取值范围只受限于计算机的内存大小,这意味着它可以处理非常大的整数,而不用担心溢出问题。比如计算阶乘:

n = 10
factorial = 1
for i in range(1, n + 1):
    factorial *= i
print(factorial)  # 这里可以轻松计算出10的阶乘,结果是3628800

浮点数(float)

浮点数是带有小数点的数字,如3.14、-0.5 。它用于表示更精确的数值计算。不过,由于计算机存储浮点数的方式是基于二进制的近似表示,在进行一些浮点数运算时可能会出现精度问题。例如:

print(0.1 + 0.2)  # 理论上应该是0.3,但实际输出可能是0.30000000000000004

如果需要高精度的计算,可以使用decimal模块来处理浮点数运算。

三、字符串:文本处理的利器

字符串(str)是由字符组成的序列,用单引号(' ')或双引号(" ")括起来都可以,比如'Hello'、"Python" 。

字符串的操作

  • 拼接:可以使用+运算符将多个字符串连接起来 。
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result)  # 输出:Hello World
  • 索引和切片:通过索引可以获取字符串中的单个字符,索引从 0 开始;切片则可以获取字符串的一部分。
s = "Python"
print(s[0])  # 输出:P,获取第一个字符
print(s[1:3])  # 输出:yt,获取第二个和第三个字符
  • 常用方法:字符串有很多实用的方法,比如split()用于分割字符串,replace()用于替换字符串中的内容等。
s = "apple,banana,orange"
fruits = s.split(",")
print(fruits)  # 输出:['apple', 'banana', 'orange']
new_s = s.replace("apple", "grape")
print(new_s)  # 输出:grape,banana,orange

四、列表:有序可变的集合

列表(list)是一种有序的、可变的容器类型,可以包含不同类型的元素,用方括号[ ]表示 。

列表的操作

  • 添加元素:使用append()方法可以在列表末尾添加一个元素,insert()方法可以在指定位置插入元素。
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  # 输出:[1, 2, 3, 4]
my_list.insert(1, 5)
print(my_list)  # 输出:[1, 5, 2, 3, 4]
  • 删除元素:使用del语句可以删除指定位置的元素,remove()方法可以删除指定值的元素。
del my_list[2]
print(my_list)  # 输出:[1, 5, 3, 4]
my_list.remove(5)
print(my_list)  # 输出:[1, 3, 4]
  • 切片操作:和字符串类似,列表也可以进行切片操作,获取其中的一部分元素。
my_list = [1, 2, 3, 4, 5]
print(my_list[1:3])  # 输出:[2, 3]

五、元组:有序不可变的序列

元组(tuple)和列表很相似,也是有序的对象集合,但元组是不可变的,一旦创建就不能修改,用圆括号( )表示 。

元组的特点

  • 不可变性:这使得元组在一些场景下比列表更安全,比如作为字典的键时,元组是可以的,而列表不行。
my_tuple = (1, "a", True)
#下面这行代码会报错,因为元组不能修改
my_tuple[0] = 2
  • 创建方式:可以直接用圆括号括起来,也可以省略圆括号。
t1 = (1, 2, 3)
t2 = 1, 2, 3  # 这种方式也可以创建元组

六、字典:键值对的映射

字典(dict)是一种无序的键值对集合,用花括号{ }表示,每个键值对之间用冒号:分隔 。

字典的操作

  • 添加和修改:通过键来访问和修改对应的值,如果键不存在则会添加新的键值对。
my_dict = {"name": "Bob", "age": 30}
my_dict["age"] = 31  # 修改age的值
my_dict["city"] = "New York"  # 添加新的键值对
print(my_dict)  # 输出:{'name': 'Bob', 'age': 31, 'city': 'New York'}
  • 删除元素:使用del语句可以删除指定键的键值对。
del my_dict["city"]
print(my_dict)  # 输出:{'name': 'Bob', 'age': 31}
  • 遍历字典:可以通过keys()方法遍历键,values()方法遍历值,items()方法遍历键值对。
for key in my_dict.keys():
    print(key)
for value in my_dict.values():
    print(value)
for key, value in my_dict.items():
    print(key, value)

七、集合:无序唯一的元素集

集合(set)是一个无序的、不包含重复元素的集合,用花括号{ }表示,不过空集合需要用set()来创建 。

集合的特性

  • 唯一性:集合会自动去除重复的元素。
my_set = {1, 2, 2, 3, 3, 3}
print(my_set)  # 输出:{1, 2, 3}
  • 无序性:集合中的元素没有固定的顺序,每次输出的顺序可能不同。
my_set = {1, 2, 3}
print(my_set)  # 可能输出:{1, 2, 3},也可能是其他顺序

集合的操作

  • 添加元素:使用add()方法添加单个元素,update()方法可以添加多个元素。
my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  # 输出:{1, 2, 3, 4}
my_set.update([5, 6])
print(my_set)  # 输出:{1, 2, 3, 4, 5, 6}
  • 集合运算:集合支持交集(intersection)、并集(union)、差集(difference)等运算,就像数学中的集合运算一样。
set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1.intersection(set2))  # 输出:{2, 3},交集
print(set1.union(set2))  # 输出:{1, 2, 3, 4},并集
print(set1.difference(set2))  # 输出:{1},差集

掌握了变量与这些常见的数据类型,你就已经迈出了 Python 编程的重要一步。在后续的学习中,你会发现它们在各种编程场景中发挥着巨大的作用。多动手实践,尝试用不同的数据类型解决实际问题,相信你会对 Python 编程有更深入的理解 。如果你还想了解更多关于数据类型转换、可变与不可变类型的区别等内容,欢迎继续关注我们的 Python 教程系列哦!

相关推荐

《Queendom》宣布冠军!女团MAMAMOO四人激动落泪

网易娱乐11月1日报道据台湾媒体报道,南韩女团竞争回归的生死斗《Queendom》昨(10/31)晚播出大决赛,并以直播方式进行,6组女团、女歌手皆演唱新歌,并加总前三轮的赛前赛、音源成绩与直播现场投...

正确复制、重写别人的代码,不算抄袭

我最近在一篇文章提到,工程师应该怎样避免使用大量的库、包以及其他依赖关系。我建议的另一种方案是,如果你没有达到重用第三方代码的阈值时,那么你就可以自己编写代码。在本文中,我将讨论一个在重用和从头开始编...

HTML DOM tr 对象_html event对象

tr对象tr对象代表了HTML表格的行。HTML文档中出现一个<tr>标签,就会创建一个tr对象。tr对象集合W3C:W3C标签。集合描述W3Ccells返回...

JS 打造动态表格_js如何动态改变表格内容

后台列表页最常见的需求:点击表头排序+一键全选。本文用原生js代码实现零依赖方案,涵盖DOM查询、排序算法、事件代理三大核心技能。效果速览一、核心思路事件入口:为每个<th>绑...

连肝7个晚上,总结了66条计算机网络的知识点

作者|哪吒来源|程序员小灰(ID:chengxuyuanxiaohui)计算机网络知识是面试常考的内容,在实际工作中经常涉及。最近,我总结了66条计算机网络相关的知识点。1、比较http0....

Vue 中 强制组件重新渲染的正确方法

作者:MichaelThiessen译者:前端小智来源:hackernoon有时候,依赖Vue响应方式来更新数据是不够的,相反,我们需要手动重新渲染组件来更新数据。或者,我们可能只想抛开当前的...

为什么100个前端只有1人能说清?浏览器重排/重绘深度解析

面试现场的"致命拷问""你的项目里做过哪些性能优化?能具体讲讲重排和重绘的区别吗?"作为面试官,我在秋招季连续面试过100多位前端候选人,这句提问几乎成了必考题。但令...

HTML DOM 介绍_dom4j html

HTMLDOM(文档对象模型)是一种基于文档的编程接口,它是HTML和XML文档的编程接口。它可以让开发人员通过JavaScript或其他脚本语言来访问和操作HTML和XML文档...

JavaScript 事件——“事件流和事件处理程序”的注意要点

事件流事件流描述的是从页面中接收事件的顺序。IE的事件流是事件冒泡流,而NetscapeCommunicator的事件流是事件捕获流。事件冒泡即事件开始时由最具体的元素接收,然后逐级向上传播到较为不...

探秘 Web 水印技术_水印制作网页

作者:fransli,腾讯PCG前端开发工程师Web水印技术在信息安全和版权保护等领域有着广泛的应用,对防止信息泄露或知识产品被侵犯有重要意义。水印根据可见性可分为可见水印和不可见水印(盲水印)...

国外顶流网红为流量拍摄性侵女学生?仅被封杀三月,回归仍爆火

曾经的油管之王,顶流网红DavidDobrik复出了。一切似乎都跟他因和成员灌酒性侵女学生被骂到退网之前一样:住在950万美元的豪宅,开着20万美元的阿斯顿马丁,每条视频都有数百万观看...人们仿佛...

JavaScript 内存泄漏排查方法_js内存泄漏及解决方法

一、概述本文主要介绍了如何通过Devtools的Memory内存工具排查JavaScript内存泄漏问题。先介绍了一些相关概念,说明了Memory内存工具的使用方式,然后介绍了堆快照的...

外贸独立站,网站优化的具体内容_外贸独立站,网站优化的具体内容有哪些

Wordpress网站优化,是通过优化代码、数据库、缓存、CSS/JS等内容,提升网站加载速度、交互性和稳定性。网站加载速度,是Google搜索引擎的第一权重,也是SEO优化的前提。1.优化渲染阻塞。...

这8个CSS工具可以提升编程速度_css用什么编译器

下面为大家推荐的这8个CSS工具,有提供函数的,有提供类的,有提取代码的,还有收集CSS的统计数据的……请花费两分钟的时间看完这篇文章,或许你会找到意外的惊喜,并且为你的编程之路打开了一扇新的大门。1...

vue的理解-vue源码 历史 简介 核心特性 和jquery区别 和 react对比

一、从历史说起Web是WorldWideWeb的简称,中文译为万维网我们可以将它规划成如下的几个时代来进行理解石器时代文明时代工业革命时代百花齐放时代石器时代石器时代指的就是我们的静态网页,可以欣...