聪明办法学Python Task03&Task04

发布时间 2023-11-25 17:04:13作者: 馍夹咸菜

数据类型和操作DATA TYPES AND OPERATORS

常用内置类型

在本节将会见到这些基本类型:

整数(int)

浮点数(float)

布尔值(bool):True和False

​ 这个比较特殊,是用来表示逻辑上的“真”和“假”(或者说“”和“”)的一种类型,它 只有两个值,TrueFalse(注意:这里没有引号,有了引号就变成字符串了)

类型Type:“类型”也是种类型,可以使用type()查看对应的类型

print(type(2))		 #int
print(type(1.2))	 #float
print(type(2<2.2))	 #bool
print(type(type(42)))#type

字符串String(str)

列表List

元祖Tuple

集合Set

字典Dictionary(dict,或者叫它映射 map)

复数Complex Number(complex)

函数Function

模块Module

常用内置常数

Python内置了一些常量

True,表示布尔

False,表示布尔

None,代表,用于空值

math库中一些数学常量

​ pi,数学常数π=3.1415926…,精确到可用精度

​ e,数学常数e=2.71828…,精确到可用精度

​ tau(不常用)

​ inf,浮点正无穷大,等价于float('inf'),负无穷大使用 -math.inf

常用内置运算符

算术:+,-,*,@,/(浮点除),//(整除),**(多少次方),%,-(一元算符,如:-1),+(一元算符,如:+1即正1)

整除//和浮点除/

​ 整除:会舍弃小数点后的

​ 浮点除:除法计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:

>>> 9 / 3

3.0

模运算或余数运算符%

​ 如:5%2的结果为1

关系:<,>,<=,>=,==,!=

赋值:+=,-=,*=,/=,//=,**=,%=

逻辑:and,or,not

and运算是与运算,只有所有都为Trueand运算结果才是True

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 3 and 3 > 1
True

or运算是或运算,只要其中有一个Trueor运算结果就是True

>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
True

not运算是非运算,它是一个单目运算符,把True变成FalseFalse变成True

>>> not True
False
>>> not False
True
>>> not 1 > 2
True

运算符优先级:

有小括号先算小括号,再从左往右

type() VS isinstance()

isinstance()比type()更具有 稳健性

短路求值

在进行逻辑判断时,只要有一个表达式是True,即整个表达式都是True。

如:表达式1 or 表达式2,如果表达式1为True,那么无需再看表达式2的值,就可以去判断整个表达式的值为True

变量与函数 VARIABLES AND FUNCTIONS

变量

变量是一个名字,它所指代的是一段数据

*变量不仅可以是数字,还可以是任意数据类型(包括布尔值)*

Python中,可以把任意数据类型赋值给变量,同一个变量可以反复赋值新的值会覆盖掉旧的值,而且可以是不同类型的变量。

命名规则:

1.变量名必须是大小写英文、数字和_的组合,且不能用数字开头

2.大小写敏感

3.尽量避免使用保留字命名。

变量在计算机内存中的表示

比如:

>>> a = 'abc'       #在内存中创建了一个'abc'的字符串和名为a的变量,并把a指向了'abc'
>>> b = a           #创建了变量b,并把b指向了a指向的字符串'abc'
>>> a = 'zzy'       #把a的指向改为'zzy',即将'zzy'赋给a,注意b并没有更改
>>> print(b)
abc
>>> print(a)
zzy
>>> print(a,b)
zzy abc

可将变量理解成一个标签,而不是一个盒子

更新变量

如:x+=2,y/=3

多变量赋值

a=b=c=2
print(f"a={a},b={b},c={c}")
输出结果:a=2,b=2,c=2
a,b,c=1,2,3				#元组的解包
print(f"a={a},b={b},c={c}")
输出结果:a=1,b=2,c=3

变量作用域

每个变量都有属于自己的作用范围,超出作用范围后,变量不可见

def f(x):
    print("x:".x)		#x和y都是在函数内部的变量
    y = 5
    print("y:",y)
    return x+y
print(f(x+y))

函数内的变量具有局部作用域,只存在于函数内部,与其他函数中的同名变量无关

在函数外部定义变量时,变量具有全局作用域,在任何地方(包括函数内部)都可以使用

我们应尽量避免使用全局变量

函数

函数是一个名字,代表一串代码序列(流程、过程)

函数由两个部分组成:header和body

header用于定义函数接口(函数名称与参数)

body包含函数所需要执行的操作

header用于定义函数的名称和参数

1.当函数被调用时,参数将会作为变量被提供给函数的body部分

2.可以提供多个参数(用逗号,分隔),也可以不提供参数

3.header以冒号(:)结尾,代表后面会跟着body部分

如:

def functionA():	#f(x,y),define定义
    pass			#函数的body部分,这里使用pass代替

body

1.语句需要缩进

2.当语句不再缩进时,函数部分结束

3.一般会使用return语句,来让函数返回其结果,但不是必须的

==============================================

1.我们使用函数名来调用函数

2.函数名后紧跟一对括号

3.括号中是我们设定的参数的值,一个不多一个不少

4.函数会返回设定的return语句的值

多返回值

def double()
    return 2,3,4
a,b,c=double()
print(f"a={a},b={b},c={c}")
输出结果:a=2,b=3,c=4

语句与表达式

表达式

它本身是值

它的计算结构是值

能打印print

语句

不是值

不能打印

能执行一些操作

返回语句:

一旦返回,函数立即结束

没有返回语句的时候,函数会返回None

内置函数

就是Python自带的函数

常用的:

类型转换

print(bool(1))  #转换成布尔类型
输出结果:True	#除0外其余整数或浮点数都为True,0为False
print(float(1)) #转换为浮点数
输出结果:1.0
print(int(2.8)) #转换为一个整数,舍弃小数点及后面的小数部分
输出结果:2

一些基本的数学函数

但是它们不在math库中

print(abs(-5))		#绝对值
输出结果:5
print(max(1,3))		#返回最大值
输出结果:3
print(min(1,3))		#返回最小值
输出结果:1
print(pow(2,10))	#次方运算,等价于2**10
输出结果:1024
print(round(2.354,2))
输出结果:2.36

函数组合

对于嵌套的函数而言,应该最先执行最内层的函数

def f(w):
    return 10*w
def g(x,y):
    return f(3*x)+y		   #x=1,y=f(z)=20,g(x,y)=g(1,20)=f(3)+20=30+20=50
def h(z):
    return f(g(z,f(z+1)))  #z=1,z+1=2,f(2)=20
print(h(1))
输出结果:500

Helper Function

编写函数是用来解决问题的

还可编写函数来存储那些经常被用到的一系列操作,这种函数叫做Helper Function