来源:数据STUDIO
作者:云朵君
Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种广泛使用的解释型、高级和通用的编程语言。Python支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库。
Python有着范围广泛的基本数据类型。Python的一个非常有用方面就是容器类型的概念,容器有二种基本形式:序列和映射。有次序的序列类型是列表(动态数组)、元组和字符串。所有序列类型都是位置索引的(从0到长度−1),并且除了字符串,都可以包含任意类型的对象,在同一个序列中包括多种类型的对象。字符串和元组是不可变的,使得它们成为字典的键的完美候选者。在另一方面,列表是可变的,元素可以被插入、删除、修改、添加或就地排序。
本篇内容总结包括从变量、输入输出到数据类型的基本介绍和常用方法。
变量赋值
>>> x=5 >>> x 5
变量计算
>>> x+2 # 两个变量的和 7 >>> x-2 # 两个变量的减法 3 >>> x*2 # 两个变量相乘 10 >>> x**2 # 求变量的幂 25 >>> x%2 # 变量的余数 1 >>> x/float(2) # 变量的除法 2.5
类型和类型转换
方法例说明str()5', '3.45', 'True'字符串int()5, 3, 1整数float()5.0, 1.0浮点数bool()True, True, True布尔值
>>> help(str)
>>> print("Hello world!") >>> msg = "Hello world!" >>> print(msg)
Input
Input程序可以提示用户输入。所有输入都存储为字符串。
>>> name = input("What's your name? ") >>> print("Hello, " + name + "!")
>>> age = input("How old are you? ") >>> age = int(age) >>> pi = input("What's the value of pi? ") >>> pi = float(pi)
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。
>>> my_string = 'thisStringIsAwesome' >>> my_string 'thisStringIsAwesome'
字符串运算
>>> my_string * 2 # 乘法 'thisStringIsAwesomethisStringIsAwesome' >>> my_string + 'Innit' # 拼接 'thisStringIsAwesomeInnit' >>> 'm' in my_string # 是否存在 True # 索引从零开始 >>> my_string[3] >>> my_string[4:9]
字符串方法
>>> my_string.upper() # 字符串大写 >>> my_string.lower() # 字符串小写 >>> my_string.count('w') # 计算字符串的元素 >>> my_string.replace('e', 'i') # 替换字符串元素 >>> my_string.strip() # 去空格
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型。
列表以特定的顺序存储一系列项目。列表允许将信息集存储在一个地方,无论只有几个项还是数百万项。列表是Python最强大的特性之一,新程序员可以很容易地访问它,它们将编程中的许多重要概念联系在一起。
使用方括号定义列表,使用逗号分隔列表中的各个项目。使用列表的复数名称,使您的代码更容易阅读。
>>> a = 'is' >>> b = 'nice' >>> my_list = ['my', 'list', a, b] >>> my_list2 = [[4,5,6,7], [3,4,5,6]] >>> users = ['val', 'bob', 'mia', 'ron', 'ned']
更改列表值
一旦定义了列表,就可以更改列表中的单个元素。这可以通过引用要修改的项的索引来实现。
>>> users[0] = 'valerie' >>> users[-2] = 'ronald'
列表切片与索引
可以使用列表中的任何一组元素。根据列表中的元素的位置(称为索引)来访问它们,列表的一部分称为片。要切片列表,首先从您想要的第一个项目的索引开始,然后添加冒号和您想要的最后一个项目之后的索引。去掉列表开始处的第一个索引,去掉列表结束处的最后一个索引。
负索引指的是列表末尾的项。要获得特定的元素,请先写出列表的名称,然后在方括号中写出元素的索引。
# 子集 >>> my_list[1] # 选择索引1的项
>>> my_list[-3] # 最后选择第三项 # 切片 >>> my_list[1:3] # 选择索引1和索引2上的项
>>> my_list[1:] # 选择索引0之后的项
>>> my_list[:3] # 选择索引3之前的项
>>> my_list[:] # 复制my_list # 子集的子集 >>> my_list2[1][0]
>>> my_list2[1][:2]
列表运算
>>> my_list + my_list
['my', 'list', 'is', 'nice', 'my', 'list', 'is', 'nice'] >>> my_list * 2 ['my', 'list', 'is', 'nice', 'my', 'list', 'is', 'nice'] >>> my_list2 > 4 True
列表方法
>>> my_list.index(a) # 获取项目的索引 >>> my_list.count(a) # 计算一个项目 >>> my_list.append('!') # 每次追加一个项 >>> my_list.remove('!') # 删除一个项目 >>> del(my_list[0:1]) # 删除一个项目 >>> my_list.reverse() # 反向列表 >>> my_list.extend('!') # 添加一个项目 >>> my_list.pop(-1) # 删除一个项目 >>> my_list.insert(0,'!')# 插入一个项目 >>> my_list.sort() # 排序的列表
列表可以包含数百万个项,因此Python提供了一种有效的方法来遍历列表中的所有项。当设置一个循环时,Python每次从列表中取出一项,并将其存储在一个临时变量中,为该临时变量提供了一个名称。这个名称应该是列表名称的单数版本。
缩进的代码块构成循环体,在循环体中可以处理每个单独的项。任何没有缩进的行在循环结束后运行。
>>> for bike in bikes: ... print(bike)
可以将元素添加到列表的末尾。
>>> bikes = [] >>> bikes.append('trek') >>> bikes.append('redline') >>> bikes.append('giant')
可以将它们插入到列表中的任何位置。
>>> users.insert(0, 'joe') >>> users.insert(3, 'bea')
可以根据元素在列表中的位置或项的值删除元素。如果你通过一个项的值来移除它,Python只移除第一个具有该值的项。
# 通过位置删除 >>> del users[-1] # 通过值删除 >>> users.remove('mia')
方法的作用是永久地改变列表的顺序。sorted()函数返回列表的副本,保持原始列表不变。可以按字母顺序或反字母顺序对列表中的项目进行排序。还可以颠倒列表的原始顺序。
小写和大写字母可能会影响排序顺序。
# 永久地对列表进行排序 >>> users.sort() # 以反字母顺序永久地对列表进行排序 >>> users.sort(reverse=True) # 临时排序 >>> print(sorted(users)) >>> print(sorted(users, reverse=True)) # 反向排序 >>> users.reverse()
>>> squares = [x**2 for x in range(1, 11)]
range()函数
可以使用range()函数有效地处理一组数字。range()函数默认从0开始,停止传递给它的数字下面的一个数字。可以使用list()函数来有效地生成大量的数字列表。
>>> for number in range(1001):
... print(number)
>>> for number in range(1, 1001):
... print(number)
>>> numbers = list(range(1, 1000001))
简单统计
您可以在包含数字数据的列表上运行许多简单的统计数据。
>>> ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77] >>> youngest = min(ages)
>>> ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77] >>> oldest = max(ages)
>>> ages = [93, 99, 66, 17, 85, 1, 35, 82, 2, 77] >>> total_years = sum(ages) >>> total_years 557
元组与列表类似,但元组中的项不能被修改,即不可变数据类型。
>>> dimensions = (1920, 1080)
字典存储在片段信息之间的建立联系。字典中的每一个项都是一个键-值对。当提供一个键时,Python将返回与该键相关联的值。可以循环遍历所有键-值对、所有键或所有值。
使用花括号来定义字典。使用冒号连接键和值,并使用逗号分隔单个键-值对。
>>> alien = {'color': 'green', 'points': 5}
获取字典值(查)
要获取单个键关联的值,需提供字典的名称,然后将键放在一组方括号中。如果需要的键不在字典中,就会出现错误。
还可以使用get()方法,如果键不存在,该方法将返回None,而不是错误。如果键不在字典中,还可以指定要使用的默认值。
>>> print("The alien's color is " + alien['color']) "The alien's color is green" >>> alien_0 = {'color': 'green', 'points': 5} >>> alien_color = alien_0.get('color') >>> alien_points = alien_0.get('points', 0) >>> print(alien_color) 'green' >>> print(alien_points)
None
添加一个新键值对(增)
可以在字典中存储任意数量的键值对,直到计算机内存耗尽为止。要向现有字典添加新的键-值对,请在方括号中给出字典的名称和新键,并将其设置为新值。
这还允许您从一个空字典开始,并在它们变得相关时添加键-值对。
>>> alien_0 = {'color': 'green', 'points': 5} >>> alien_0['x'] = 0 >>> alien_0['y'] = 25 >>> alien_0['speed'] = 1.5 # 向空字典中添加新键值对 >>> alien_0 = {} >>> alien_0['color'] = 'green' >>> alien_0['points'] = 5
修改字典值(改)
可以修改与字典中任何键相关联的值。为此,给出字典的名称并将键括在方括号中,然后为该键提供新值。
>>> alien_0 = {'color': 'green', 'points': 5} >>> print(alien_0)
>>> alien_0['color'] = 'yellow' >>> alien_0['points'] = 10 >>> print(alien_0)
删除字典键值对(删)
您可以从字典中删除任何想要的键-值对。为此,请使用del关键字和字典名称,后跟方括号中的键。这将删除键及其关联值。
>>> alien_0 = {'color': 'green', 'points': 5} >>> print(alien_0) >>> del alien_0['points'] >>> print(alien_0)
循环遍历字典
可以用三种方式循环遍历字典:可以循环遍历所有键-值对、所有键或所有值。字典只跟踪键和值之间的连接,它不跟踪字典中条目的顺序。如果希望按顺序处理信息,可以对循环中的键进行排序。
>>> fav_numbers = {'eric': 17, 'ever': 4} >>> for name, number in fav_numbers.items():
... print(name + ' loves ' + str(number))
>>> av_numbers = {'eric': 17, 'ever': 4} >>> for name in fav_numbers.keys():
... print(name + ' loves a number')
>>> av_numbers = {'eric': 17, 'ever': 4} >>> for number in fav_numbers.values():
... print(str(number) + ' is a favorite')
>>> av_numbers = {'eric': 17, 'ever': 4} >>> for name in sorted(fav_languages.keys()):
... print(name + ": " + language)
列表中嵌套字典
# 建立一个空列表 >>> users = [] # 创建一个字典,并将其嵌入到列表中 >>> new_user = {
... 'last': 'fermi',
... 'first': 'enrico',
... 'username': 'efermi',
... } >>> users.append(new_user) # 再创建另一个字典,并将其嵌入到列表中 >>> new_user = {
... 'last': 'curie',
... 'first': 'marie',
... 'username': 'mcurie',
... } >>> users.append(new_user) # 打印出列表中所有的信息 >>> for user_dict in users: ... for k, v in user_dict.items():
... print(k + ": " + v)
... print("n")
>>> users = [
... {
... 'last': 'fermi',
... 'first': 'enrico',
... 'username': 'efermi',
... },
... {
... 'last': 'curie',
... 'first': 'marie',
... 'username': 'mcurie',
... },
... ] # 打印所有users的信息 >>> for user_dict in users: ... for k, v in user_dict.items():
... print(k + ": " + v)
... print("n")
字典内嵌套列表
在字典中存储列表,允许将多个值与同一个键关联。
# 为每个人存储多种语言。 >>> fav_languages = {
... 'jen': ['python', 'ruby'],
... 'sarah': ['c'],
... 'edward': ['ruby', 'go'],
... 'phil': ['python', 'haskell'],
... } # 显示每个人的所有回答。 >>> for name, langs in fav_languages.items():
... print(name + ": ") >>> for lang in langs: ... print("- " + lang)
字典内嵌套字典
可以将一个字典存储在另一个字典中。在这种情况下,与键相关联的每个值本身就是一个字典。
>>> users = {
... 'aeinstein': {
... 'first': 'albert',
... 'last': 'einstein',
... 'location': 'princeton',
... },
... 'mcurie': {
... 'first': 'marie',
... 'last': 'curie',
... 'location': 'paris',
... },
... } >>> for username, user_dict in users.items():
... print("nUsername: " + username)
... full_name = user_dict['first'] + " " ... full_name += user_dict['last']
... location = user_dict['location']
... print("tFull name: " + full_name.title())
... print("tLocation: " + location.title()) Username: aeinstein
Full name: Albert Einstein
Location: Princeton Username: mcurie
Full name: Marie Curie
Location: Paris
顺序字典 OrderedDict
标准的Python字典不会跟踪键和值的添加顺序,它们只保留每个键及其值之间的关联。使用OrderedDict可以保持键和值的添加顺序。
>>> from collections import OrderedDict # 存储每个人的语言。 # 跟踪最先响应的人。 >>> fav_languages = OrderedDict() >>> fav_languages['jen'] = ['python', 'ruby'] >>> fav_languages['sarah'] = ['c'] >>> fav_languages['edward'] = ['ruby', 'go'] >>> fav_languages['phil'] = ['python', 'haskell'] # 按照输入的顺序显示结果 >>> for name, langs in fav_languages.items():
>>> print(name + ":") >>> for lang in langs: >>> print("- " + lang) jen: - python
- ruby sarah: - c edward: - ruby
- go phil: - python
- haskell
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
最近我发现一个绝招,用DeepSeek AI处理Excel数据简直太爽了!处理速度嘎嘎快! 平常一整天的表格处理工作,现在只要三步就能搞 ...
2025-04-01你是否被统计学复杂的理论和晦涩的公式劝退过?别担心,“山有木兮:统计学极简入门(Python)” 将为你一一化解这些难题。课程 ...
2025-03-31在电商、零售、甚至内容付费业务中,你真的了解你的客户吗? 有些客户下了一两次单就消失了,有些人每个月都回购,有些人曾经是 ...
2025-03-31在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的需求持续飙升。世界经济论坛发布的《未来就业报告》, ...
2025-03-28你有没有遇到过这样的情况?流量进来了,转化率却不高,辛辛苦苦拉来的用户,最后大部分都悄无声息地离开了,这时候漏斗分析就非 ...
2025-03-27TensorFlow Datasets(TFDS)是一个用于下载、管理和预处理机器学习数据集的库。它提供了易于使用的API,允许用户从现有集合中 ...
2025-03-26"不谋全局者,不足谋一域。"在数据驱动的商业时代,战略级数据分析能力已成为职场核心竞争力。《CDA二级教材:商业策略数据分析 ...
2025-03-26当你在某宝刷到【猜你喜欢】时,当抖音精准推来你的梦中情猫时,当美团外卖弹窗刚好是你想吃的火锅店…… 恭喜你,你正在被用户 ...
2025-03-26当面试官问起随机森林时,他到底在考察什么? ""请解释随机森林的原理""——这是数据分析岗位面试中的经典问题。但你可能不知道 ...
2025-03-25在数字化浪潮席卷的当下,数据俨然成为企业的命脉,贯穿于业务运作的各个环节。从线上到线下,从平台的交易数据,到门店的运营 ...
2025-03-25在互联网和移动应用领域,DAU(日活跃用户数)是一个耳熟能详的指标。无论是产品经理、运营,还是数据分析师,DAU都是衡量产品 ...
2025-03-24ABtest做的好,产品优化效果差不了!可见ABtest在评估优化策略的效果方面地位还是很高的,那么如何在业务中应用ABtest? 结合企业 ...
2025-03-21在企业数据分析中,指标体系是至关重要的工具。不仅帮助企业统一数据标准、提升数据质量,还能为业务决策提供有力支持。本文将围 ...
2025-03-20解锁数据分析师高薪密码,CDA 脱产就业班助你逆袭! 在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的 ...
2025-03-19在 MySQL 数据库中,查询一张表但是不包含某个字段可以通过以下两种方法实现:使用 SELECT 子句以明确指定想要的字段,或者使 ...
2025-03-17在当今数字化时代,数据成为企业发展的关键驱动力,而用户画像作为数据分析的重要成果,改变了企业理解用户、开展业务的方式。无 ...
2025-03-172025年是智能体(AI Agent)的元年,大模型和智能体的发展比较迅猛。感觉年初的deepseek刚火没多久,这几天Manus又成为媒体头条 ...
2025-03-14以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-13以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda.cn/go ...
2025-03-12以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-11