【小白学python】入门级教程

【小白学python】入门级教程

9 个月前 · 来自专栏 小白学Python

一、Python基础入门

1. Python神器


2. print 输出

(1)输出文本内容

print("hello world") #必须加单引号或双引号

(2)输出变量内容

x=1

print(x)#不能加单引号或双引号

你也可以尝试加单引号或双引号是什么结果?

(3)分行显示

假设有两个变量

x=1

y=2

print(x)

print(y)

(4)同行显示

在print中增加end=' '

x=1

y=2

print(x,end=' ')

print(y,end=' ')

(5)文本加变量同时显示

想用文本提示输出结果的内容是什么,就可以采用这种形式:

x=1

y=2

print("x的值为:",x)

print("x+y的值为",x+y)

所以我们还可以把python当计算器使用;用python开发一些简单程序的时候,比如做一个抽奖小程度,就可以采用这种文本加变量的形式,文本可以提醒用户输入内容,变量由用户输入,然后对比提前界定好的中奖数字范围,判断用户是否中奖!

3. 添加注释

单行注释:以 # 开头

#print:打印的意思

print('hello world')#python不区分单引号与双引号

多行注释:可以用多个 # 号,还有 ''' 和 """:

比如,

前面的代码可以改为:

#print:打印的意思

#python不区分单引号与双引号

print('hello world')

还可以改为:

'''print:打印的意思

python不区分单引号与双引号'''

print('hello world')

"""print:打印的意思

python不区分单引号与双引号"""

print('hello world')

所以如果你只有一行代码可以用#,两行注释也可以用#,反正都是需要敲两次,但是如果有三四行甚至更多注释的时候就建议用单引号或双引号了!

4. Import导入

(1)将整个模块导入

Import 模块 [ as 别名]

例如:Pandas是数据分析三大剑客之一(pandas/matplotlib/numpy),是处理数据最理想的工具;经常会使用import pandas as pd,实际上,

import pandas as pd =import pandas

后面的别名是可以省略的,

import pandas as pd

df=pd.DataFrame({'语文':[101,110,123],

'数学':[111,125,135]})

print(df)

改为:

import pandas

df=pandas.DataFrame({'语文':[101,110,123],

'数学':[111,125,135]})

print(df)

但是,as pd我们通常是不会去省略的,因为我们经常要调用pandas的方法或函数,经常打那么多字母看起来冗余,也不方便,这也是一种语言习惯,所以我们用import pandas as pd就行了,这里只是为了说明一下如何调用整个模块!

(2)导入模块的某个函数

例如:

from pandas import Series #通过pandas模块引series对象

s1=Series([88,76,96]) #使用series创建对象

print(s1)

Series类似一维数组,通常由一维数组和这组数据相应的标签(索引)构成;series是一个对象,但是你也可以理解为是pandas的一个函数,通过这个函数可以创建series对象。

python如果需要导入多个函数,多个方法或多个对象,用逗号隔开,比如:

from pandas import Series, DataFrame

5. python保留字

what:什么是保留字?

保留字也称关键字,python有专门的关键词keyword模块

import keyword

print(keyword.kwlist)

keyword.kwlist显示keyword模块下关键词列表,list是列表的意思;后续我们会学列表,比如list.remove可以删除列表中的元素,list.sort可以对列表元素进行排序;所以这是python语法的表达形式,模块.函数/方法,对python模块内容进行处理,后续我们接触的多了就容易理解了。

Why:为什么要知道有哪些保留字?

因为保留字不能被用作任何标识符名称,比如你现在定义一个字段为常量,你可以用:

c=1

print(c)

但是不能用

and=1

print(and)

6. 代码缩进

(1)次级代码必须缩进

用缩进来表示代码块是python的一大特色,不同于c语言用{}来表示上下级关系,python用缩进表示代码的上下级关系。

Python的缩进基本是自动的,当然你肯定也可以手动添加,通过空格和tab键可以添加空格,因为敲这两个键盘通常都以空白形式显示

比如,if/for循环等场景,通常都会有缩进

if True:

print('true')

else:

print('false')

缩进可以理解为目录的一级标题、二级标题,同级标题对称

同理,python的同级代码需对称

如果不对称就会报错,跟sql不一样!

例如,你把上述代码改成:

if True:

print('true')

else:

print('false')

Indentation:首行缩进;

Expected:期望的

Indented:缩进排印的;

Block:街区,大楼;障碍,阻碍;一块,大块,块;

首行缩进错误:应为缩进块

(2)同级代码不可缩进

Python次级代码需要缩进,同理,同级代码是不可缩进的,

比如:

x=1

print(x)

Indentation:首行缩进;

unexpected:想不到的,意外的;不应该存在的

Indent:(行,段落)缩进,缩格;

首行缩进错误:不应该存在缩进。

(3)缩进空格数量要求

这里比较有意思的是,虽然python代码的对称性要求很高,但是基本上用缩进表达代码的优先级关系就行,并不要求完全对称,比如,刚刚的代码改为:

if True:

print('true')

else:

print('false')

所以缩进的空格数量也并没有严格要求,但是次级内容一定要有空格缩进

python默认的是缩进四个空格,但我们改为一个或两个空格也是可以执行的!

if True:

print('true')

else:

print('false')

7. 多行显示

(1)需要使用反斜杠的多行显示

x=1

y=2

c=3

z=x+y+c

print(z)

x=1

y=2

c=3

z=x

+y

+c

print(z)

x=1

y=2

c=3

z=x+

y+

c

print(z)

Syntax:语法

Syntaxerror:语法错误

Invalid:无效的;(计算机)不能识别的

Invalid syntax:不能识别的语法;无效的语法

我们给它加上一个“\”

x=1

y=2

c=3

z=x+\

y+\

c

print(z)

(2)不需要使用反斜杠的多行显示

在 [], {}, 或 () 中的多行语句,不需要使用反斜杠“\”

例如,

list={1,2,3,

4}

print(list)

(3)原理:物理行与逻辑行

什么事物理行?

例如:

a=1

b=2

c=3

z=a+b+c

print(z)

这里的每一行代码都是都是一个物理行,所以这里五行代码就是五个物理行

什么是逻辑行?

a=1

b=2

c=3

z=a+\

b+\

c

print(z)

这里的

z=a+\

b+\

c

看起来是三行代码,但是属于一个逻辑行,因为Python解释器对代码进行解释,一个语句是一个逻辑行,z=a+b+c属于一个语句,只是通过反斜杠用多行显示出来。

而缩进是针对逻辑行的,像这里,你可以缩进也可以不缩进,但有的逻辑行是必须缩进的,上一期我们有讲过这块的内容,就不复述了!

a=1

b=2

c=3

z=a+\

b+\

c

l 逻辑行的“首行”需要顶格,即无缩进;

l 相同逻辑层保持相同的缩进;

l ":"标记一个新的逻辑层

增加缩进表示进入下一个代码层

减少缩进表示返回上一个代码层

if True:

print('true')

else:

print('false')

8. 数值型Number详解

(1)python有哪些数据类型

不可变数据 Number(数字)
不可变数据 String(字符串)
可变数据 List(列表)
不可变数据 Tuple(元组)
可变数据 Set(集合)
可变数据 Dictionary(字典)

string、list 和 tuple 都属于 sequence(序列)。

Number(数字)

String(字符串)

List(列表)

Tuple(元组)

Set(集合)

Dictionary(字典)

(2)数字型有哪些具体细分类型?

int(整数) 20
float(浮点型) 20.5
bool(布尔型) true/false
complex(复数) 1+2j

a=20

b=20.5

c=True

d=1+2j

print(type(a),type(b),type(c),type(d))

#type函数:type(对象),查看数据类型的方法!

有一个有意思的地方就是type本身也是有数据类型的,那他是什么数据类型呢?

a=20

print(type(type(a)))

数据类型:整数、布尔型、浮点数和复数

#type函数还有个同类函数isinstance

# isinstance(o, t),其中o表示object对象,t表示type数据类型

a=20

print(isinstance(a,int))

isinstance 和 type 的区别主要有两点:

其一,type函数返回的是数据类型,而isinstance返回的是布尔值,也就是true或false;

其二,type()不会认为子类是一种父类类型;isinstance()会认为子类是一种父类类型。

关于类的内容我们后续再详细展开

(3)布尔型为什么归类为数字型?

这是因为默认情况下true=1,false=0,可以执行四则运算

a=True+1

print(a)

这里需要注意的是true=1,但二者分别属于布尔型和整数型,细分数据类型不同。

print(True==1)

print(True is 1)

(4)什么是复数

complex(复数)

我们把形如 z=a+bi(a、b均为实数)的数称为复数。其中,a 称为实部,b 称为虚部,i 称为虚数单位,“i”的平方等于“-1”。 有的表达式没有意义可以用复数表示。

复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

9. 数值运算

(1)符号运算

a=125

b=6

print(a*b)#相乘

print(a/b)#相除结果为浮点型

print(a//b)#相除结果为整数型,向下取整

如果你想相除后四舍五入保留整数该如何操作?

print(round(a/b,0))#四舍五入

print(a%b)#取余数,20余5

print(a**b)#乘方,也就是幂运算

那么,如果我想开根号呢?

print(a**(1/b))#开方

所有二元运算操作符(+、-、*、/、//、%、**)都可以与等号(=)相连, ,形成增强赋值操作符(+=、-=、*=、/=、//=、%=、**=); 即x op= y 等价于 x = x op y ,op 为二元数学操作符。

x=3

x=x+10

print(x)

可以理解为对变量重新赋值,也可以改写为:

x=3

x+=10

print(x)

(2)函数运算

成方还可以用函数表示

a**b =pow(4,2)

print(abs(-10))#取绝对值

divmod(x,y)#(x//y,x%y), 同时返回商数和余数;输出为二元组形式(元组类型)

x=4

y=2

z=divmod(x,y)

print(z)

max(x1,x2,...,xn)#x1,x2,...,xn的最大值,n没有限定

min(x1,x2,...,xn)#x1,x2,...,xn得最小值 n没有限定

有没有sum函数、count函数?

有python自带的sum输入对象是可迭代的。可以是列表,数组,可迭代对象;

numpy中的函数就是我们常见的sum函数,输入可以是列表,元组,数组

可迭代是什么意思?

可迭代对象的意思是指存储了元素的一个容器对象,且容器中的元素可以通过iter( )方法或getitem( )方法访问。并不是指某种具体的数据类型。常见的可迭代对象包括:集合数据类型,如list、tuple、dict、set、str等。

x=3

y=10

print(sum(x,y))

Iterable:可迭代的,可遍历的;

TypeError: 'int' object is not iterable:数据类型错误,整数型对象是不可迭代的。

x=3

y=10

list1=[x,y]

print(sum(list1))

10. 字符串String详解

(1)什么是字符串

字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符

a="123"

print(type(a))

(2)字符串的截取

变量[头下标:尾下标]

a="123hello"

print(a)#输出字符串

print(a[0])#输出字符串的第一个字符

print(a[-1])#输出字符串的最后一个字符

print(a[2:5])#输出字符串的第三个至第五个字符

print(a[2:])#输出字符串的第三个开始后面所有字符

print(a[3:-1])#输出从第四个字符到倒数第二个字符

print(a[:3])#从字符串开头到第3个字符

变量[头下标:尾下标:步长]

a="123hello"

print(a[1:5:2])

(3)字符串的重复显示

a="123hello"

print(a*2)

也可以print(2*a)

(4)字符串的连接

a="123hello"

print(a+"world")

所以前面字符串的重复显示,如果次数不多,也可以用+

a="123hello"

print(a+a)

11. 转义字符

转义字符:以“\”开头

Python 使用反斜杠 \ 转义特殊字符,

如果不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串,这里的 r 指 raw,天然的,未经加工的;(信息)未经处理的,原始的;即 raw string,会自动将反斜杠转义

(1)回车符,空行,将光标移动到下一行开头:“\n”

print("\n")#输出空行

print("a\nb")#ab分行显示

内容回顾:同行显示

x=a

x="a"

y="b"

print(x,end=' ')

print(y,end=' ')

将x的末尾未改为空格,而非默认的制表符;

改为:

x="a"

y="b"

print(x,end='\n')

print(y,end='\n')

注意:多行代码一行显示用“;”连接

x="a";y="b";print(x,end='\n');print(y,end='\n')

(2)回车符,将光标移动到本行开头:“\r”

print("\r")#输出空行

print("a\rb")#输出“\r”后面的字符内容

(3)tab键,水平制表符,相当于四个空格:“\t”

print("a\tb")

(4)退格,backspace,将光标位置移到前一列“\b”

print("a\bb")

(5)字符串分行显示:字符串行尾“\”

x=1

y=2

c=3

z=x+\

y+\

c

print(z)

(6)打印反斜线、单引号、双引号:“\+对象”

print("\\")

print("\''")

print('\""')

注意:区分单引号与双引号,如果是转义单引号,字符串用双引号,如果是转义双引号,字符串用单引号。

(7)将反斜杠转义:r”[字符串]\字符串”

print(r"a\nb")#将反斜杠转义

但是不能

print(r"\")

EOL:寿命终止;EndOfLine 行结束

While:当…时,尽管,直到…为止

Scanning:浏览的,扫描的,搜索的;

Literal:字面的,用字母表示的;文字

EOL while scanning string literal: 当扫描字符串文字时结束符存在语法措施;读取字符串时出错

这是为什么呢?

用r转义反斜杠时,最后一个字符不可以是反斜杠,将反斜杠转义:r”[字符串]\字符串”。


12. 列表List详解

(1)什么是列表

列表是python非常常见的数据类型,将不同类型数据合并为一类。

列表的表现形式为方括号 [] ,并用逗号分隔元素;

list=[1,2,3,4]

print(a)

print(type(a))

(2)列表元素类型

列表中元素的类型可以不相同,可以同时包含数字、字符串等,甚至可以包含列表(嵌套);

list =[1,[2,3],4,"abc",True]

print(list)

print(type(list))

(3)列表的索引和截取

列表可以被索引和截取,返回一个包含所需元素的新列表,与字符串的操作基本一致;

list =[1,[2,3],4,"abc",True]

print(list)#输出字符串

print(list [0])#输出字符串的第一个元素

print(list [-1])#输出字符串的最后一个元素

print(list [2:5])#输出字符串的第三个至第5个元素,第五个元素索引号是4

print(list [2:])#输出字符串的第三个开始后面所有元素

print(list [3:-1])#输出从第四个字符到倒数第二个元素

print(list [:3])#从字符串开头到第3个元素

print(list [1:5:2])

print(list *2)

print(list +["world"])


(4)列表的翻转操作

列表的截取和索引可以用以下公式表示,

变量[头下标:尾下标:步长]

其中第三个参数步长是可以省略的,如果步长为负数表示逆向读取,类似“180度翻转”操作。

list=[1,2,3,4,5]

print(list[-1::-1])

# 第一个参数 -1 表示最后一个元素

# 第二个参数为空,表示移动到列表末尾

# 第三个参数为步长,-1 表示逆向

(5)列表是可变数据类型

列表内容可以更改,字符串内容是不可更改的;

list =[1,[2,3],4,"abc",True]

list[0]=2

print(list)

但如果是字符串:

list ="1,2,3,4,5"

list [0]=2

print(list)

Item:项目,品项,条款

Assignment:作业,任务,分配

item assignment:项目分配

TypeError: 'str' object does not support item assignment

“str”对象不支持项目分配

原因是python中字符串是一个不可变类型,想要改变python字符串中的某个字符,只能对字符串重新赋值。

13. 元组Tuple详解

(1)什么是元组

元组写在小括号 () 里,元素之间用逗号隔开;

tuple=(1,2,3,4,5)

print(tuple)

print(type(tuple))

(2)元组是不可变数据类型

与列表不同的是元组内的元素是不可更改的;

tuple=(1,2,3,4,5)

tuple[0]=2

也就是说元组不支持这类任务指派,这不是它的工作,它也没这个权力,如果要更改元组里的内容,只能重新定义元组,与字符串一样的操作!

(3)元组的索引与切片

元组也可以被索引和切片,方法一样

tuple=(1,2,3,4,5)

print(tuple)

print(tuple[0])

print(tuple[1:3])

需要注意的是括号里的内容是索引号,索引号是从0开始的,所以末端通常都是区间范围内的[ ),也就是末端的位置需要-1.

(4)单个元素的元组创建的特殊性

空元组和单个元素的元组创建

tuple1=()

tuple2=(1)

tuple3=(1,)

print(tuple1,tuple2,tuple3)

注:当元组只包含一个元素,需要在元素后添加逗号,这一点跟字符串和列表都不一样;python解释器把(3)当作一个算数表达式来处理的,它的结果就是一个int型对象。为了和只有单个元素的元组区分,python规定要在元素后面带上一个逗号。


14. 集合Set简介

(1)什么是集合

由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素,比如我们可以去判断某个元素是否在集合内。

(2)集合的创建方法

方法1:{}

sets={"hello","world","we","love","life"}

print(sets)

print(type(sets))

set是无序的,内部元素之间没有顺序与位置的概念,也不支持下标操作。

比如我们可以去判断某个元素是否在集合内。

sets={"hello","world","we","love","life"}

if "we" in sets:

print(True)

else:

print(False)

方法2:set函数

sets=set("helloworldwelovelife")

print(sets)

注意:set函数输出的结果是去重的

(3)集合的运算

sets_a=set("helloworld")

sets_b=set("welovelife")

print(sets_a-sets_b)#a和b的差集:a有b没有

print(sets_a|sets_b)#a和b的并集:a有或b有的元素去重

print(sets_a&sets_b)#a和b的交集:a有b都有的元素去重

print(sets_a^sets_b)#a和b不同时存在的元素:a有b没有或b有a没有

15. 字典Dictionary简介

(1)什么是字典?

列表是有序的对象集合,字典是无序的对象集合;

字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。所以说,字典是一对一对的,键值对。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

(2)如何创建字典?

方法一:

dict={}

dict["语文"]=[112,113,115]

dict["数学"]=[102,119,135]

dict["英语"]=[109,116,138]

print(dict)

方法二:

dict={}

dict["语文"]=[112,113,115]

dict["数学"]=[102,119,135]

print(dict)


(3)基于key输出value

dict={"语文":[111,123,134],

"数学":[140,134,125],

"英语":[109,116,138]}

print(dict["数学"])#输出数学成绩

print(dict.keys())#输出键

print(dict.values())#输出值

注:字典的关键字必须为不可变类型,且不能重复

(4)dictionary属于可变数据类型

#key不可变,dictionary可变数据类型

dict={}

dict["语文"]=[112,114,125]

dict["语文"]=[123,114,125]

print(dict)


16. 基础数据类型转换

(1)整数int转换为浮点float

隐性转换:整数+浮点=浮点

a=1.23

b=4

c=a+b

print(c,type(c))

可以理解为是一种隐性的数据类型转换机制,因为 Python 会将较小的数据类型转换为较大的数据类型,以避免数据丢失。

(2)转化为整型:函数int()

#浮点型转换为整型

a=1.23

z=int(a)

print(z)

注意:int()函数为向下取整,如需四舍五入,可采用round函数

#字符串转换为整型

a="3"

z=int(a)

print(z,type(z))

(3)转换为浮点型:float()

#整数型转换为浮点型

a=float(1)

print(a,type(a))#默认保留一位小数

#字符串转换为浮点型

a=float("3")

print(a,type(a))

#默认保留一位小数,那么能否用来设置浮点型数据小数位数为1呢?

a=float(3.1415)

print(a,type(a))

(4)转换为字符串:str()

#浮点型转为字符串

a=str(3.1415)

print(a,type(a))

(5)整数和字符串如何运算

#整数+字符串的结果

a=520

b="1314"

print(a+b)

Operand:运算数,运算对象;

#错误解决

方法1:

a=520

b=int("1314")

print(a+b)

方法2:

a=520

b=float("1314")

print(a+b,type(a+b))

17. 个性化数据类型转换

(1)转换为表达式字符串:repr()

a=520

b=str(a)

print(b,type(b))

a=520

b=repr(a)

print(b,type(b))

(2)str()和repr()的差异

#原变量都加上引号

a="520"

b=str(a)

print(b,type(b))

a="520"

b=repr(a)

print(b,type(b))

(3)repr()的应用场景

#解析特殊字符,比如转义字符

#比如你想判断表格数据中有无空格,有无tab键等

a="节日\t鲜花\t寓意\n七夕\t520\tiloveyou"

print(a)

b=repr(a)

print(b,type(b))

(4)执行一个字符串表达式:eval()

#eval() 函数用来执行一个字符串表达式,并返回表达式的值

a="34+52"

print(a,eval(a))

(5)转换为列表:list()

#字符串转换为列表

str="hello world"

print(list(str))

(6)转换为元组:tuple()

#列表转换为元组

list=[1,2,3,4,5]

print(tuple(list))

(7)转换为集合:set()

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

#字符串转换为集合/创建集合

set_a=set("helloworld")

set_b=set("iloveyou")

print(set_a,set_b)

注意:字符串要素去重,可转换为集合,字符串要素不去重,可转换为列表或元组。

(8)转换为不可变集合:frozenset()

集合set是可变数据类型,返回的结果跟原始数据不一样,并且可以添加删除元素,而frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

a=frozenset("helloworld")

print(a)

18. Python运算符:=与==有何不同

一、比较运算符

(1)比较运算符的内容

a=20

b=30

print("a==b",a==b)#等于

print("a!=b",a!=b)#不等于,python3不支持<>

print("a>=b",a>=b)#大于等于

print("a<=b",a<=b)#小于等于

print("a>b",a>b)#大于

print("a<b",a<b)#小于

== 等于 - 比较对象是否相等
!= 不等于 - 比较两个对象是否不相等
> 大于 - 返回x是否大于y
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
>= 大于等于 - 返回x是否大于等于y。
<= 小于等于 - 返回x是否小于等于y。

(2)比较运算符的常见场景

a=2

b=3

if (a==b):

print("a和b相等")

else:

print("a和b不相等")

二、赋值运算符

(3)单个变量的赋值运算

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建;

变量没有类型,所说的"类型"是变量所指的内存中对象的类型;

等号(=)用来给变量赋值,等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

x=1

print(x)

如果你没有x=1,而直接print(x)就会出错

(5)加法赋值运算

a=2

b=3

a+=b

print("a+b",a)#等于

= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取余数赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

(4)多个变量的赋值运算

a=b=c="hello"

print(a,b,c)

a,b,c=1,"hello",True

print(a,b,c)

19. Python逻辑运算符

(1)逻辑运算符的基础场景

a=2

b=3

c=4

print((a>b) and (b<c))#有一个为false返回false

print((a>b) or (b<c))#有一个为ture返回true

print(not(a>b))#对象为true则返回false

因为逻辑运算符返回逻辑值,所以也经常应用于if else条件语句中。

(2)逻辑运算符的特殊场景

a=2

b=3

print("a=2,b=3,a and b:",a and b)

print("a=2,b=3,a or b:",a or b)

print("a=2,b=3,not(a and b):",not(a and b))

and x and y 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

20. Python成员和身份运算符

In:如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

not in:如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

(1)成员运算符in和not in的应用场景

i=1

list=[1,2,3,4,5]

if i in list:

print("you are lucky")

else:

print("thanks for your participation")

i=1

list=[1,2,3,4,5]

if i not in list:

print("you are out")

else:

print("you can continue")

列表、字符串等都适用

(2)身份运算符is的应用场景

Is:is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回True,否则返回 False

is not:is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(x) != id(y)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

a=10

b=10

if a is b:

print("a和b相等")

else:

print("a和b不相等")

a=10

b=10

if a == b:

print("a和b相等")

else:

print("a和b不相等")

(3)身份运算符is not和!=

a=10

b=10

if a is not b:

print("a和b不相等")

else:

print("a和b相等")

a=10

b=10

if a != b:

print("a和b不相等")

else:

print("a和b相等")

(3)身份运算符is和赋值运算符==的差异

is 与 == 区别看似相同,但二者之间是存在差异的,is 用于判断两个变量引用对象是否为同一个,而== 用于判断引用变量的值是否相等。

a=[1,2,3,4,5]

b=a[:]

print(a,type(a),b,type(b))

print(a==b)

print(a is b)

(4)Python运算符优先级

优先级 运算符 描述
1 (expressions...), 圆括号的表达式
2 [expressions...], {key: value...}, {expressions...}
3 x[index], x[index:index], x(arguments...), x.attribute 读取,切片,调用,属性引用
4 await x await 表达式
5 ** 乘方(指数)
6 +x, -x, ~x 正,负,按位非 NOT
7 *, @, /, //, % 乘,矩阵乘,除,整除,取余
8 +, - 加和减
9 <<, >> 移位
10 & 按位与 AND
11 ^ 按位异或 XOR
12 | 按位或 OR
13 in,not in, is,is not, <, <=, >, >=, !=, == 比较运算,包括成员检测和标识号检测
14 not x 逻辑非 NOT
15 and 逻辑与 AND
16 or 逻辑或 OR
17 if -- else 条件表达式
18 lambda lambda 表达式
19 := 赋值表达式

21. 字符串格式化

%:格式化操作符

(1)%s:格式化字符串

name="小红"

z="%s,生日快乐"%(name)

print(z)

你可以直接更改最后括号中对应的参数,比如写邮件、签合同等场景

(2)%d:格式化整数

name="小红"

age=18

z="%s,%d岁生日快乐"%(name,age)

print(z)

有符号十进制度整数,%06d表示输出6位整数,不足部分用0补齐

name="小红"

num=1

z="%s,员工编号%06d"%(name,num)

print(z)

(3)字符串格式化在爬虫中的应用

字符串格式化经常应用于爬虫网页翻页:

for i in range(1,5):

url=' ' % i

print(url)

(4)%f:f=float,格式化浮点数字

name="小红"

height=180.786

z="%s,身高%f"%(name,height)

print(z)

(5)%.nf格式化浮点数保留n位小数

可指定小数点后的精度,%.nf表示保留n位小数

name="小红"

height=180.786

z="%s,身高%.2f"%(name,height)

print(z)

(6)格式化字符串的函数str.format()

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能

字符串.format(),可以在任意版本中使用,在需要使用变量的地方{ }占位,' { },{ }... '.format(变量,变量,...)

name="小红"

height=180.786

z="我叫{},身高{}".format(name,height)

print(z)

保留两位小数

name="小红"

height=180.786

z="我叫{},身高{:.2f}".format(name,height)

print(z)

(7)f字符串的格式化方法

F-string(f字符串的格式化方法)

如果想使用f字符串格式化方法,python版本大于3.6才可,.需要在字符串的前边加上f“ ”或者F" ",占位符号统一变为{ },语法为f"{变量}"或者F"{变量}"。

name="小红"

height=180.786

z=f"我叫{name},身高{height:.2f}"

print(z)

这里的f可大写可小写

22. 字符串大小写转换与判断函数

(1)str.capitalize()#字符串整个句子首字母大写

a="the history of gossip"

b=a.capitalize()

print(b)

(2)str.title()#字符串每个单词首字母大写

a="本期标题:the history of gossip"

b=a.title()

print(b)

(3)str.upper()#字符串的小写字母转为大写字母

a="the history of gossip"

b=a.upper()

print(b)

(4)str.lower()#字符串的所有大写字符为小写

a="the history of GOSSIP"

b=a.lower()

print(b)

(5)str. islower()#字符串中所有字母均为小写返回true

a="本期标题:the history of GOSSIP"

b=a.islower()

print(b)

修改

a="本期标题:the history of gossip"

b=a.islower()

print(b)

(6)str. isupper ()#字符串中所有字母均为大写返回true

a="本期标题:the history of GOSSIP "

b=a.isupper()

print(b)

修改

a="本期标题:the history of gossip"

b=a.upper().isupper()

print(b)

23. 爬虫常用函数之startswith和endswith

(5)endswith():判断字符串是否以指定后缀结尾

endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。可选参数 "start" 与 "end" 为检索字符串的开始与结束位置。

str.endswith(suffix[, start[, end]])

suffix -- 该参数可以是一个字符串或者是一个元素。

start -- 字符串中的开始位置。

end -- 字符中结束位置。

如果字符串含有指定的后缀返回 True,否则返回 False。

str="123456"

z=str.endswith("456")

print(z)

start 参数以 0 为第一个字符索引值。

end 参数以 1 为第一个字符索引值。

str="123456"

z=str.endswith("456",0,5)#str从第1个到第5个个字符是否以456结尾

print(z)

修改

str="123456"

z=str.endswith("456",0,6)

print(z)

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数beg 和 end 指定值,则在指定范围内检查。

str -- 检测的字符串。

substr -- 指定的子字符串。

strbeg -- 可选参数用于设置字符串检测的起始位置。

strend -- 可选参数用于设置字符串检测的结束位置。

str.startswith(substr, beg=0,end=len(string));

案例:

str="123456"

z=str.startswith("123")

print(z)

str="123456"

z=str.startswith("123",0,6)

print(z)

二、python项目实战

24. 六行代码即可爬取完整网页数据

import pandas as pd

for i in range(1,14):

url=" espn.com/nba/salaries/_ {}/seasontype/1".format(i)#str.format()

df=pd.DataFrame()#只能输入二维数组

df=df.append(pd.read_html(url))#pd.read_html(url)list

df.to_csv('/Users/kusa/Desktop/test/NBA4.csv',mode="a")

25. 四行代码绘制多种炫酷水球图

场景一

#从百度echarts图表库导入Liquid模块

from pyecharts.charts import Liquid

调用Liquid()函数

liquid=Liquid()

#Add()方法可以对水球图的颜色等参数进行设置

liquid.add('水球图',[0.7])

#保存水球图到指定路径

liquid.render('/Users/kusa/Desktop/test/python数据源/myliquid.html')

场景一

#Add()方法可以对水球图的颜色等参数进行设置

from pyecharts.charts import Liquid

liquid=Liquid()

#Add()方法可以对水球图的颜色等参数进行设置

liquid.add('水球图',[0.7])

liquid.render('/Users/kusa/Desktop/test/python数据源/myliquid.html')

#render:使成为;使变得;使处于某状态

场景二

#Add()方法可以对水球图的颜色等参数进行设置

from pyecharts.charts import Liquid

liquid=Liquid()

#Add()方法可以对水球图的颜色等参数进行设置

liquid.add('水球图',[0.7,0.6,0.5])

liquid.render('/Users/kusa/Desktop/test/python数据源/myliquid.html')

#render:使成为;使变得;使处于某状态

场景三

#Add()方法可以对水球图的颜色等参数进行设置

from pyecharts.charts import Liquid

liquid=Liquid()

#Add()方法可以对水球图的颜色等参数进行设置

liquid.add('水球图',[0.7,0.6,0.5],shape='diamond')

liquid.render('/Users/kusa/Desktop/test/python数据源/myliquid.html')

#render:使成为;使变得;使处于某状态

场景四

#Add()方法可以对水球图的颜色等参数进行设置

from pyecharts.charts import Liquid

liquid=Liquid()

#Add()方法可以对水球图的颜色等参数进行设置

liquid.add('水球图',[0.6],shape='diamond',color=['#2E8B57'])

liquid.render('/Users/kusa/Desktop/test/python数据源/myliquid.html')

#render:使成为;使变得;使处于某状态

场景五

#Add()方法可以对水球图的颜色等参数进行设置

from pyecharts.charts import Liquid

liquid=Liquid()

#Add()方法可以对水球图的颜色等参数进行设置

liquid.add('水球图',[0.6],shape='diamond',is_outline_show=False,color=['#2E8B57'])

liquid.render('/Users/kusa/Desktop/test/python数据源/myliquid.html')

#render:使成为;使变得;使处于某状态

编辑于 2022-12-07 21:01 ・IP 属地湖南

文章被以下专栏收录

    小白学Python

    小白学Python

    免费且每日更新!轻松入门python,并巩固基础!