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

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

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

在 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 教程系列哦!

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...