摘要:总结了Python基本语法和数据类型最全总结,本文带你学习Python。本文分享自华为云社区《Python最全基础语法和数据类型总结》,原作者:北山。人生苦短,我用Python。总结了Python最全的基本语法和数据类型,本文带你学习Python。Python最全基础知识总结写你的第一个程序Python注释Python代码基本结构数据类型运算符内置函数formatstring字符串操作列表和元组列表列表操作函数元组字典类型字典类型操作方法集合类型集合操作集合操作写第一个程序哈哈,入门语言,当然第一句是helloworld,相比C和Java、Python的语法格式很简单,就是print()。现在我们开始写第一个程序:输出HelloWorld!它将输出一个字符串“HelloWorld!”。如果多次调用print()函数,如下:可以看到每条print()语句都会占一行。如果要将以上三句输出在同一行,可以这样做:通过在打印中添加end="",在print()函数原来默认输出后添加一个换行符,改成添加一个null输出字符串后的字符,这样它就不会换行。另外,print()除了可以接收字符串参数外,还可以接收任何其他参数,还可以调用函数打印出函数执行结果。也可以是表达式,打印出表达式的运行结果。Python中的注释在上一端的代码中,我们使用#在print()语句之后的代码中添加注释。这是一种很常见的注释方式:单行注释。如果有多行注释,可以用三对双引号或单引号将它们包起来:除了上述两种注释外,还有一种特殊的注释,即文档注释。文档注释主要用于自动生成帮助文档,对格式和位置都有一定的要求。如果你的程序可能被其他人使用,为了方便他们并防止他们查看你的代码以获得试用方法,你应该提供文档注释并为他们生成文档。文档注释必须是包、类或函数中的第一条语句。这些字符串可以通过对象的doc成员自动提取出来,供pydoc使用。并且文档注释必须使用三对单引号或者双引号来注释,不能使用#为了更好更清楚的说明函数的功能,函数的文档说明应该遵循一定的规则:args:列出函数的名称每个参数,并在名称后使用冒号和空格来分隔参数的名称和说明。如果说明太长,单行超过80个字符,请使用2或4个空格的悬挂缩进。Returns:函数的返回值,包括类型和具体的返回值。如果没有返回值或者一个None值,你可以不写Raises:抛出的异常。不抛异常不写。Python代码的基本结构在前面的程序中,我们基本可以体会到Python程序的一些特点。首先,在Python代码中,不要使用{}或者其他明显的标志来限制代码的首尾,而是根据代码的缩进来判断代码的关系:连续的代码,相同的缩进是相同的代码块,例如.在语句的末尾,不需要使用;toend,而是直接用一个换行符来表示语句的结束。此外,Python还有一些与众不同的写法。例如,如果一条语句太长,可以使用“\”将其分成多行:虽然Python不需要使用;作为语句,但如果有多个语句,则可以使用;将这些语句分开:数据类型在上面的代码中,我们定义了变量a、b、x、y等。可以看出,在Python中,与许多其他编程语言不同,Python变量不需要声明为特定类型,而是直接赋值给它们,Python会根据值来设置变量的类型。虽然Python变量可以直接使用而无需先声明类型,但这并不意味着Python没有数据类型。Python常用的数据类型包括:number(数字)int(整数)float(浮点数)complex(复数):复数由实部和虚部组成,可以用a+bj表示,或者复数(a,b),复数的实部a和虚部b都是浮点数boolstring(string)list(list)tuple(tuple)set(set)dict(dictionary)这几种类型,我们会讲到他们在后续课程中一一介绍。运算符在Python中,提供了常用的运算符。我们先来看看它的数学运算符。/%:余数//:整数除法**:幂可见,整数和浮点数的运算,结果是浮点数。如果要将浮点数转换为整数,可以这样做:或者将整数转换为浮点数:bool类型只有两个值:True或False。它的操作包括not、and、或内置函数。所谓内置函数就是Python语言本身已经定义好供我们直接使用的函数,比如前面用到的print()、abs()、int()、float等。()等待。后面我们会在合适的地方讲到这些功能。前面我们讲了print(),我们来看看输入。Input使用input(),它接收一个字符串作为提示信息显示给用户。用户输入后,会以字符串的形式返回给程序。字符串类型字符串是最常用的数据类型之一,它用来表示一串不可变的字符。字符串可以使用双引号或单引号将字符括起来。如果字符串中已经包含单引号或者双引号,可以通过以下方法处理:如果字符串中包含单引号,则使用双引号将字符串包裹起来,反之,如果字符串中包含双引号,则使用单引号将字符串包裹起来,例如:如果字符串中同时存在单引号和双引号,则可以对字符串中的单引号和双引号进行转义,即在字符串中的单引号和双引号前加上\,对于示例:中文全角单双引号不受影响,即中文单双引号将被视为普通字符。对于内容复杂的字符串,还可以使用“””“””或者''''''将字符串包裹起来。这时无论里面有单引号还是双引号,都会被原封不动地正确处理。使用%占位符格式化字符串有时候,我们可能需要在字符串中加入一些不确定的内容,比如根据用户的输入输出一句问候语:这个方法可以达到我们的目的,但是在可读性和性能上没有优化.因此,Python中先后提供了三种格式化字符串的方式。我们先看第一个:使用占位符%。如果将上面的代码改为使用%占位符,则可以修改如下:这种方式的好处是%占位符可以自动将非字符串类型的数据转换成字符串,并与字符串的其他部分拼接成形成一个新的字符串。它的标准格式是:%(name)[width].[precision]typecode除f,s,d以外的其他格式字符,请看下面的例子:指定名称的方式:这种格式的数据逐渐被废弃,因为必须有它的占位符和值是一一对应的,占位符多的时候更容易出错。使用format()函数格式化字符串。这样用{}作为占位符,但是它的好处是可以指定顺序,例如:还可以添加变量:考虑下面的情况:A喜欢B,但是B不喜欢A。如果A和B要确定,用前面的格式定义如下:"%slikes%s,but%sdoesn'tlike%s"%("A","B","B","A")这种方法的问题是:都是用%s指定的,看不出A和B的区别。A和B实际上重复了一次。如果重复多次,则需要重复更多次。如果使用format()函数,可以写成:当然,在format()中,也可以使用类似%的数据类型设置:指定长度和精度:另外指定长度后,如果对应值不足,可以指定补字符(默认为空格,如上面北山后的空格),必须配合对齐方式使用:"<":左对齐"^":居中对齐">":右对齐使用f-string进行格式化与%相比,stringformat()方法有了明显的提升,但是在一些复杂的情况下,还是不够灵活。例如:可见一旦参数多了,使用format()时就需要做更多的无用功。其实如果能直接对应{}中的变量就方便多了。可以用f-string改成,因为f-string的{}里面的内容会在运行时计算,所以也可以直接在{}里面调用函数,使用表达式,例如:对于多行文本,在为了让代码更美观更易读,应该这样写:当然上面的限制也可以用在f-string中:又如:指定对齐方式:不同基数不同表示的数字:字符串操作如果想从字符开始获取字符串中的一段子串,可以通过str[start:end]方法获取。其中start为起始索引,end为结束索引,但不包括end索引对应的字符。如果只取单个字符,只需要指定start参数即可。我们经常需要对字符串进行操作,因此Python提供了很多字符串操作函数供我们使用。capitalize():将字符串的首字母大写title():将字符串中每个单词的首字母大写lstrip()、rstrip()、strip():用于去除左右空格注意上面的方法不会改变原来的字符串内容,而是生成一个新的字符串startswith(prefix,start,end):字符串是否以某个字符串开头以某个字符串结尾find(s,start,end):从左到右查找字符串中是否包含字符串s,返回找到的第一个位置。如果没有找到,则返回-1返回错误rindex(s,start,end):类似于index(),只是它是从右往左查找isalnum():如果字符串中至少有一个字符且字符串中存在则为真由数字和字母组成。isalpha():如果字符串中至少有一个字符,且字符串由字母组成,则为trueisdigit():是否为数字(整数),不计算小数点,只支持阿拉伯数字isnumeric():是否为数字。支持本地语言的数字,如中文“一千三百”、“一千八千”等。replace(s1,s2):将字符串中的s1替换为s2我们来看一个综合的案例。在指定的字符串中,将字符串中与第一个字母相同的字母(除了第一个字符本身)替换为另一个字符“@”,例如:little,替换后变为litt@e,即littleAlll(首字母为l)替换为@(除了首字母本身),下面是一个实现思路:全班同学合起来:names=["北山辣","李四","王五"]listlist是一个有序可变的数据集合,可变的意思是它可以随时添加或删除元素。可以通过索引从中提取元素,例如names[1]将提取第二条数据(索引从0开始)。如果索引超出范围(例如索引大于或等于列表数),则会报错。索引可以为负数,表示从后往前计数取数据。此时最后一个元素的索引为-1。列表中的元素,其数据类型不必相同。甚至可以将列表数据用作另一个列表的元素。例如:names=["Beishanla","LiSi",["Leonardo","Dicaprio"],"WangWu"],其中第三个元素(索引2)是另一个列表。这时,names[2]取到的值就是列表["Leonardo","Dicaprio"],要得到Leonardo的值,需要用这个列表["Leonardo","Dicaprio"]上的索引0来得到,这样就可以通过getnames2取出list中一定范围内的元素,可以使用list[start:end]来获取,例如:names[1:3]取出元素从索引1到索引3(不包括索引3)的2个元素。如果省略start,则表示从0开始。如果省略end,则表示在列表的最后一个元素处结束。如果你想创建一个以一系列数字作为内容的列表,你可以结合list()函数和range()函数来创建它。例如,创建一个包含数字0-99的列表:print(list(range(100)))[0,1,2,3,4,5,6,7,8,9,10,11,12、13、14、15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、46、47、48、49、50、51、52、53、54、55、56、57、58、59、60、61、62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]range(0,100)range()函数原型:range(stop):从0开始计数,计数到stop结束,但不包括stop,例如:range(10),生成的数字范围是0-9range(start,stop[,step]):从start开始计数,到stop结束(不包括stop),step为步长,即每次变化的范围,默认为1,即每次start/stop/step加1,可以是任意整数“start
