python3年经验,30天快速上手Python数据分析
Yyds干货库存
昨天讲了字符串的基本定义,连接,类型转换,延续了昨天学的字符串数据类型。今天,我探索了一些其他功能。
格式化字符串字符串格式化是一个简洁的函数,它允许我们动态地更新字符串内容。假设我们从服务器获取用户信息,并希望根据这些信息显示定制消息。第一个想法是应用字符串串联,例如:
名字=汤姆
姓氏=巡航
welcome_message=Welcome 名字 姓氏
print(welcome _ message)# welcometomcruise如果我们有更多的变量,那么动态字符串可能有点难以阅读。如果我们有其他类型的数据,那么我们也需要将它们转换成字符串。有一种更简洁的方法来使用格式化字符串。
名字=汤姆
姓氏=巡航
welcome _ message=f Welcome {名字} {姓氏}
print(welcome _ message)# welcometomcruise字符串前面的f表示格式化字符串。动态值放在{}中,这是一种更简洁的语法。等效的JavaScript是ES6中引入的字符串插值或模板字符串。例如,以下内容:
名字=汤姆;
lastName= Cruise
welcome message=` welcome $ { first name } $ { last name } `;
console . log(welcome message)//welcometomcruise string index Python中的字符串只是字符的有序集合。所以我们可以用它做很多很酷的把戏。我们可以访问字符串的字符,选择子串,反转字符串,这非常简单。它也被称为字符串切片。
language=python
first_character=language[0] #索引从0开始
second_character=语言[1]
print(first_character) # p
打印(第二个字符)# y
#字符串可以很容易地用这个语法操作[start:stop:step-over]
range_1=language[0:2] #这里,它从索引0开始,到索引1结束
range_2=language[0:1] #从0开始,以超过1的步长结束
range_3=language[:2] #从0开始,直到步骤2结束
range_4=language[1:] #从索引1开始,直到字符串结束
range_5=language[-1] #选择最后一个字符
range_6=language[-2] #倒数第二个字符
reverse_string=language[:-1] #从结尾开始并反转字符串
reverse _ string _ 2=language[:-2]#反转字符串并跳过1个字符
打印(范围_1) # py
print(range_2) # python
打印(范围_3) # pto
打印(range_4) # ython
打印(范围_5) # n
打印(范围_6) # o
print(reverse_string) # nohtyp
Print(reverse_string_2) # nhy不可变字符串本质上是不可变的。这意味着字符串的值不能被篡改或更改。
favorite_website=开发者到
收藏夹_网站[0]=w
print(favorite _ website)# type error:“str”对象不支持项赋值内置字符串函数和方法Python有一些内置函数和方法可以对字符串数据类型进行操作。函数通常是可以独立调用的操作,如print()和round(),而方法只能作为对象的一部分用。接线员。
quote=javascript太棒了
print(len(quote)) # 21 (len计算字符总数)
new _ quote=quote . replace( JavaScript , python )
打印(new_quote) # python牛逼
capitalize=new _ quote.capitalize()
打印(大写)# Python太棒了
upper_case=new_quote.upper()
打印(大写_case) # PYTHON牛逼
print(quote) # javascript牛逼(注意:字符串是不可变的!)方法
形容
string.capitalize()
将字符串的第一个字符大写。
string.center(宽度)
返回一个新字符串,原字符串居中,并用空格填充到长度宽度。
string.count(str,beg=0,end=len(string))
返回字符串中str的出现次数,或者如果由beg或end指定,则返回指定范围内str的出现次数。
bytes.decode(编码=UTF-8 ,错误=严格)
Python3中没有decode方法,但是我们可以使用bytes对象的decode()方法对给定的bytes对象进行解码。
string.encode(编码=UTF-8 ,错误=严格)
以编码指定的编码格式对字符串进行编码,编码结果是bytes对象。如果有错误,将默认报告ValueError异常,除非错误指定“忽略”或“替换”
string.endswith(obj,beg=0,end=len(string))
检查字符串是否以obj结尾,如果beg或end指定,检查指定范围是否以obj结尾,如果是,返回True,否则返回False。
string.expandtabs(tabsize=8)
将字符串string中的tab符号变成一个空格。制表符符号中的默认空格数是8。
string.find(str,beg=0,end=len(string))
检查字符串中是否包含str。如果beg和end指定了一个范围,检查它是否包含在指定的范围内。如果是开头的索引值,否则返回-1。
string.format()
格式化字符串
string.index(str,beg=0,end=len(string))
与find()方法相同,只是如果str不在字符串中,将会报告一个异常。
string.isalnum()
如果字符串至少有一个字符,并且所有字符都是字母或数字,则返回True,否则返回False。
string.isalpha()
如果字符串至少有一个字符并且所有字符都是字母,则返回True,否则返回False。
string.isdecimal()
如果字符串只包含十进制数,则返回True,否则返回False。
string.isdigit()
如果字符串只包含数字,则返回True,否则返回False。
string.islower()
如果字符串包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写的,则返回True否则,返回False。
string.isnumeric()
如果字符串只包含数字字符,则返回True否则,它返回False。
string.isspace()
如果字符串只包含空格,则返回True否则,它返回False。
string.istitle()
如果字符串有标题(见title()),则返回True否则,它返回False。
string.isupper()
如果字符串包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写的,则返回True否则,返回False。
string.join(序列)
以string为分隔符,seq中的所有元素(用string表示)合并成一个新的字符串。
string.ljust(宽度)
返回一个左对齐的原始字符串,并用空格填充新字符串至长度宽度。
string.lower()
将字符串中的所有大写字符转换为小写。
string.lstrip()
截断字符串左侧的空格。
string.maketrans(intab,outtab)
maketrans()方法用于创建字符映射的转换表。对于接受两个参数的最简单的调用方法,第一个参数是一个字符串,表示要转换的字符,第二个参数也是字符串表示转换的目标。
最大(字符串)
返回字符串str中最大的字母。
最小(str)
返回字符串str中最小的字母。
字符串.分区(字符串)
有点像find()和split()的组合。从str出现的第一个位置开始,字符串被分成一个3元元素的元组(string _ pre _ str,str _ post _ str)。如果string不包含str,string_pre_str==string。
string.replace(str1,str2,num=string.count(str1))
将字符串中的str1替换为str2。如果指定了num,它将被替换不超过num次。
string.rfind(str,beg=0,end=len(string))
类似于find()函数,但是从右边开始。
string.rindex( str,beg=0,end=len(string))
类似于index(),但从右边开始。
string.rjust(宽度)
返回一个新字符串,该字符串与原始字符串右对齐,并用空格填充到长度宽度。
string.rpartition(str)
类似于partition()函数,但是搜索从右边开始。
string.rstrip()
删除字符串string末尾的空格。
string.split(str= ,num=string.count(str))
用str作为分隔符分割字符串,如果num有一个指定的值,则只分隔num个子串。
string.splitlines([keepends])
由行( \r , \r\n ,\n )分隔,返回包含所有行作为元素的列表。如果参数keepends为False,则不包含换行符;如果为真,则保留换行符。
string.startswith(obj,beg=0,end=len(string))
检查字符串是否以obj开头,如果是,返回True,否则返回False。如果beg和end指定值,请在指定范围内检查。
string.strip([obj])
对字符串执行lstrip()和rsttrip()。
string.swapcase()
用绳子把箱子翻过来
string.title()
返回一个“带标题的”字符串,即所有单词都以大写字母开头,其余字母都是小写字母(参见istitle())
string.translate(str,del= )
根据str给出的表(包含256个字符),对string的字符进行转换,将待过滤的字符放入del参数中。
string.upper()
转换字符串中的小写字母是大写的。
string.zfill(宽度)
返回一个长度宽度的字符串。原字符串右对齐,前面用0填充。
在Python中,字符串是一种与列表和字典同等重要的数据类型。上面有很多操作,所以内置了很多方法。每当你需要处理字符串的时候,你可以在这里找到它们。也许有原生方法,就不用自己写了。
操作琴弦的方法那么多,需要全部背下来吗?如果能背最好,如果不能,至少需要知道以下几点:
Encode() #编码成字节类型find()# find substring index()# get subscript replace()# replace substring len(string)#返回字符串长度,Python内置方法,非字符串方法。Lower() #小写字符upper() #大写字符split() #拆分字符串strip() #删除两端的指定符号。字符串以xxx开头吗?endswith() #字符串是否以xxx结尾?
对于布尔值,error,0和1,正数和负数都是传统意义上的布尔类型。
但是在Python中,布尔类型只有两个值,True和False。请注意是英文单词的对错,首字母要大写,不允许有其他花哨的变体。
所有计算结果或调用返回值True或False的过程都可以称为布尔运算,例如比较运算。布尔值通常用于确定条件是否有效。
is_cool=True
is_dirty=False
Print(10 9) # True Python内置的bool()函数可以用来测试一个表达式的布尔结果。
以下例子的结果可能会让你吃惊,但它们是事实。请接受它们。
真实的
真实的
错误的
错误的
3 2
真实的
3 5
错误的
3英寸[1,2,3]
真实的
3==9/3
真实的
3是“3”
false为什么3是错的?因为一个是整数,一个是字符串,所以is运算符比较对象,当然是错误的。
And、or和not运算and运算是and运算,and运算的结果只有在一切为真的情况下才为真:
千真万确
真实的
真假
错误的
假的假的
错误的
5 3和3 1
or运算是or运算,只要其中一个为真,or运算的结果也为真:
真实还是真实
真实的
对还是错
真实的
假还是假
错误的
5 3还是1 3
Truenot运算是非运算,是单目运算,把真变成假,假变成真:
不是真的
错误的
不假
真实的
不是1 2
真的再开脑洞,布尔型可以做其他运算吗?试试吧!
对还是错
真实的
对还是错
错误的
真=假
真实的
真-1
0
false 1
2
false * 3
三
False -1
-1真的可以!比较和四则运算没有问题。而且在做四则运算的时候,很明显真被当成了1,假被当成了0。往往是我们不知道的细节,有时候会给我们带来很大的困扰和疑惑。支持更多类型的操作,请自行测试。
注释是用代码编写的语句,用于增强可读性。在Python中,它们用#符号后跟注释来编写。解释器忽略注释,仅用于代码可读性目的。我在代码示例中使用它们来打印或添加一些注释。按照良好的编程习惯,我们应该尽量让自己的代码像读英语一样易读,只在必要的时候添加注释,因为注释过多的臃肿代码可能会适得其反。
#这不是一个非常有用的评论,只是为了演示而写的。在我们写的程序中,不仅有代码,还有很多注释。注释是解释性的,有帮助的,相当于代码执行过程中不存在,透明,不参与任何工作。但它在代码维护、解释、测试等方面起着不可或缺的作用。每个程序员都应该努力写出高质量的注释。有很多高水平的文章和关于特定注释主题的论述。请自行搜索学习。这里,我们只讨论Python中的注释方法。
在Python中,符号“#”是单行注释的开始,从它回到这一行的末尾,就是注释的内容。
#!/usr/bin/python3
#以下方法的作用是….
#第一条评论
#我是一行评论
#这是一个空函数,它什么也不做。这张纸条也是废话。
def main():
Pass # pass的意思是占据一个位置,什么都不做。那我为什么要评论呢?多行注释Python没有真正的多行注释语法(块注释)。只能在每行开头加个#假装成多行注释。
#第一行注释
#第二行注释
#注释第三行
定义函数():
打印(这是一个悲伤的故事!)在一些特定位置对文档中用三个引号括起来的部分进行注释,也算是注释。但是这种注释有一个特殊的功能,就是用来为__doc__提供文档内容,可以通过现成的工具自动收集,形成一个帮助文档。例如,函数和类的文档:
定义函数(a,b):
是这个函数的文档。
:param a:加数
:param b:加数
:返回:和
返回a b
Foo类:
这个类初始化一个年龄变量。
def __init__(自身,年龄):
Self.age=age需要强调的是,这种评论必须在定义体的正下方,不能在任何地方。
列表是一种重要的数据类型。它们是有组织的对象集合。它也是一种数据结构,这意味着一个容器,可以根据不同的目的以特定的格式组织数据。它们就像JavaScript或其他编程语言中的数组。它们由[]表示。它们可以用来一起存储相同或不同的数据类型。列表中的每个元素都被分配了一个数字作为索引,用于指示元素在列表中的位置。第一个元素的索引为0,第二个元素的索引为1,依此类推。
Python的list是一组有序且可重复的元素,可以嵌套、迭代、修改、切片、追加和删除,并由成员判断。
从数据结构的角度来看,Python的list是一个变长的顺序存储结构,每个位置存储一个对象的指针。
favorite _ languages=[ JavaScript , python , typescript]
shopping_cart_items=[pen ,牙刷,消毒剂,橡皮擦]
random_things=[football ,123,True, developer ,777]
first _ item=shopping _购物车_项目[0]
Print(first_item) # pen 列表切片类似于字符串,列表也可以切片。然而,与字符串不同,列表是可变的,这意味着它们的数据可以被改变。
soccer _ stars=[c罗,梅西,伊布,齐达内,贝克汉姆]
soccer_stars[0]=suarez
print(soccer_stars) # [苏亚雷斯,梅西,伊布,齐达内,贝克汉姆]
range=soccer_stars[0:3]
print(range) # [苏亚雷斯,梅西,伊布]
print(soccer_stars) # [苏亚雷斯,梅西,伊布,齐达内,贝克汉姆]
#注意:切片列表不会改变列表
clone=soccer_stars[:] #复制列表。Python中常用的
print(clone) # [苏亚雷斯,梅西,伊布,齐达内,贝克汉姆]
reverse _ order=soccer _ stars[:-1]#反转数据的顺序
Print (reverse _ order) # [贝克汉姆,齐达内,伊布,梅西,苏亚雷斯]矩阵列表可以是多维的。我上面说的列表例子都是一维或者一维的。但是,我们可以将列表包含在列表中。所以一个二维列表看起来像这样:
matrix_2=[[1,3,2]、[1,3,2]、[2,3,4]、[2,3,5]]
first_item=matrix_2[0]
print(first_item) # [1,3,2]
first _ item _ first _ element=matrix _ 2[0][0]#或first_item[0]
print(first _ item _ first _ element)# 1我们同样可以在一个列表中嵌套任意数量的列表,来创建不同维度的矩阵,类似于我们小学学的数学中的矩阵。这种矩阵数据有助于存储图像等复杂数据,用于机器学习模型。稍后探索它们并了解它们的实际应用将会非常有趣。
好了,今天就学到这么多,好好消化一下。明天,我们将继续学习列表的其余概念,如它的函数和方法以及其他模式,然后学习数据类型字典、元组、集合和None的其余内容。我对逐步探索这些数据结构感兴趣。我希望你在跟踪他们的时候会发现他们很酷。我们明天再见吧!
原创作品来自程,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。