学习Python全套代码【超详细】Python入门、核心语法、数据结构、Python进阶

上面的代码在输出的时候还是会显示为一整行。如果说还有更长的字符串,类似一整段话,我们可以使用三引号

zen = """Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense."""

print(zen)


当然,上面的双引号也可以用单引号代替。

2.2.3 布尔值(boolean, bool)

布尔值只有两个值: True 和 False,顾名思义,True代表真,False代表假,我们用布尔值一般是用来做条件判断。在Python3中,True和False是关键字,所以我们不能定义为变量名。

2.2.4 空值 None

空值None是Python中的一个特殊值,它代表空值,表示“什么都没有”,None同时也是关键字。None的用处有很多,比如说你想定义一个变量,但一时还没想好给它赋什么值,甚至连它用什么类型也没决 定好,这时可以先用None。

temp = None
print(temp)


None被输出的时候显示为一个字符串"None"

2.2.5 类型转换
2.2.5.1 布尔值转换

要想把其他值转换为布尔值,需要使用一个内置函数bool(),我们在控制台按顺序输入以下的代码:

Python


# 以下值都为True
bool(1)
bool(-1)
bool(255)
bool(0.0000001)
bool(-99.99)

# 下面的值为False
bool(0)
bool(0.0)


通过上面的代码,不难总结出:对于数值类型,所有的非零值转换为True, 只有零值才转换为False. 字符串也可以转换为布尔值

# 这是一个空字符串,转换结果为False
bool("")

# 转换结果为True
bool("abc")

# 这是一个只包含一个空格的字符串,转换结果为为True
bool(" ")


对于任何非空的字符串,转换为布尔值都是True。注意第一行代码和第三行代码。

空值转换为布尔值永远都是False(敲黑板)

# 结果为False
bool(None)


2.2.5.2 字符串转换

首先介绍一下我们可以使用str() 将其他类型转换为字符串,

True, False, None 这三个值转换为字符串就是它们的单词本身,实际上在实际编程中,我们很少需要把它们转换成字符串来使用。

str(True)
str(False)
str(None)
# 结果是'True' # 结果是'False' # 结果是'None'


对于数值类型,我们也可以用str()将它们转换为字符串,

print("My age is", str(18))


在上面的例子中,我们使用str()将18转换为"18",然后再输出。实际上,在这个例子中,如果不进行强制转换的话,也不会出错,那是因为,print函数会自动将数值先转换成字符串再输出。

2.2.5.3 数值转换

数值转换是我们在数据分析过程中经常用到的,因为我们从任何文件中读到的数字一开始都是字符串, 需要将它们转换为数值才能进行运算。

如果想要把一个整数字符串转换为int类型,使用int();

num = "1"
int(num) + 1


如果将int()去掉,这段代码则会报错,因为num是个字符串,不能将字符串和数值进行相加。

数值的前后带有空格也可以成功转换:

int(" 100 ")
# 结果为100


带有符号的数字也可以成功转换

int("-1")  # 结果为-1 
int("+1")  # 结果为1



如果想要把一个带小数点的字符串转换为float类型,使用float() pi = “3.1415926”

float(pi)


int类型和float类型之间也可以相互转换

int(3.14)  #结果为3
int(9.9)  # 结果为9
float(100)  # 结果为100.0


注意第二行中,9.9并没有转换为10,虽然这样更符合我们的常识,四舍五入嘛,但float在被转换为int的过程中,它的小数部分精度将被丢弃,只取整数部分。所以在将float转换为int的过程中,永远要小 心。

那如果想要四舍五入的来转换呢,毕竟这样更符合我们的需求。Python给我们提供了一个内置函数: round

round(9.9)  #结果为10 
round(9.5)  #结果为10
round(9.49) #结果为9


甚至,round函数让我们可以指定要保留小数点后几位:
保留小数点后两位,由于第三位是1,所以结果是3.14 round(3.1415926, 2)
保留小数点后三位,由于第四位是5,所以结果是3.142 round(3.1415926, 3)

布尔值也可以转换为int或者float

int(True)  # 结果是1
int(False)  # 结果是0

float(True) # 结果是1.0
float(False)# 结果是0.0


观察一下,恰好是数值类型转换为布尔类型的相反过程。

第三节 运算符
2.3.1 算术运算符

Python中进行数值运算需要的符号如下,我们来一一学习一下。

运算符	描述	    实例
+	    加	    1 + 1; a + b
-	    减	    10 - 5; a - b -c
*	    乘	    4 * 2 相当 4 × 2
/	    除	    4 / 2 相当于 4 ÷ 2
//	    取整除	10 // 4 结果是 2
%    	取模		10 % 4 相当于 10 - (10 // 4) × 4
**	    指数		2 ** 3 相当于 2 * 2 * 2,也就是2的3次方
()	    小括号	提高运算优先级,比如: (2 + 8) * 3


我们来看几个例子:

print(1 + 1) 
print(10 - 5) 
print(4 * 2) 
print(4 / 2)  # 结果是2.0


上面的例子都是简单的加减乘除,我们用肉眼就能观察出结果,需要注意的是除法运算, 当我们使用单斜杠除法运算符时,即使除数和被除数都是整数,它的返回结果也是一个浮点数。

print(5 / 2)  # 结果是2.5 
print(5 // 2)  # 结果是2


当我们需要对两个整数进行除法运算,且对结果的小数精度要求不高的时候,一般使用双斜杠来进行运算,这样能保证结果也是整数,不用再进行类型转换。

print(10 / 3)  # 结果是3.3333333333333335


上面这行代码的结果很有意思,我们都清楚,10 ÷ 3的结果是3.333…无限循环小数,但无限循环小数毕竟是个数学概念,计算机无法表达,所以只能显示到一定的位数。细心的你可能会发现最后一位为什么是5呢?四舍五入的话也应该是3呀。这是因为小数以二进制形式表示时的有穷性导致的,也就是计算机底层机制的原因。这里面的细节大家可以先不管,但要记住进行浮点数运算时是有精度问题的。

print(10 % 4)  # 结果是2
print((2 + 8) * 3)  # 结果是30


取模运算符大家先暂时可以理解为取余数,记住以下几个规则:

  1. 当两个数能整除时,取模运算的结果为0,比如 8 % 4 的结果是0
  2. 当0<a<b时,a % b = a,比如 3 % 8 的结果是3
  3. 当两个数中有负数时,结果可能会跟我们预料的不同,记住这个公式就行了 :a % b 就相当于a - (a // b) * b
2.3.2 使用算术运算符操作字符串

对,没有看错,字符串在Python中也可以“运算”,有两种操作,我们先看看加法。

print("Hello " + "world")


加号可以将两个字符串拼接成一个字符串,也可以将多个字符串拼接在一起:

print("apple " + "apple " + "apple ")


那如果有太多的"apple"怎么办呢?总不能一直加下去吧,这时候我们可以使用"*"运算符,表示将该字符串重复几次并拼接成一个字符串。

print("apple " * 5)


使用加号拼接字符串时需要注意,不能将字符串与数值一起相加,比如说我们要给用户发现一条查询积分的消息:

print("您账户积分为:" + 500)


这样写将会报错,所以我们要在拼接之前,先将500转换为字符串,运用我们上面学过的知识,修改成这样:

print("您账户积分为:" + str(500))


2.3.3 赋值运算符

赋值操作其实我们已经用过了,在前面定义变量的时候我们都会使用等于号。

num = 1
name = "Smith"


结合上面的运算符,我们可以做更多的赋值操作:

运算符	描述				实例
+=		加法赋值运算符	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


我们在日常编程中最常用的是加法赋值和减法赋值,比如设置一个计数器,每次+1

count = 0
count += 1
count += 1


执行了两次加法赋值操作后,count的值变成了2。

2.3.4 比较运算符

比较运算符是用来运算布尔值的, 将两个值放在一起比较,最后得到True或者False。

运算符	描述		实例
==		等于		100 == 100
!=		不等于	100 != 99
>		大于		2 > 1
<		小于		1 < 2
>=		大于等于	3 >= 2
<=		小于等于	2 <= 3


我们可以在控制台cmd中的python里输入一些比较运算,看看它们的返回值是什么

100 == 100  # True
100 == "abc"  # False
1 != 2  # True
2 != 2  # False
3 > 3  # False
3 >= 3  # True
2 < 3  # True
2 <= 3  # True


这都是符合我们的常识的操作,大家在控制台里试着敲一遍就明白了。下面再试试一些比较特殊的例子:

100 == "100"   # False
100 == 50 * 2  # True
str(100) == "100"  # True
1.0 != 1  # False
int(1.9) == 1  # True


需要注意的一点是,数值100 和字符串"100"是不相等的,这一点尤其要小心,这种隐藏的bug很难被发现。

2.3.4 逻辑运算符

真实的程序中,常常需要判断的条件是复杂的,所以我们需要逻辑运算符将多个比较运算连接起来。

运算符	逻辑表达式	描述	 
and		x and y		任意一个是False,结果就是False	True and False 结果为False
or		x or y		任意一个是True,结果就是True;	True or False 结果为True
not		not x		将条件取反	not False 结果为True


我们来看几个例子:

# 定义两个变量 
a, b = 1, 2 

a > 0 and a < b  # True

a % 2 == 0 or b % 2 == 0  # True

not a > b  # True


and, or, not它们也是Python中的关键字,这是经常需要使用的三个关键字。掌握好逻辑运算符是学好任何一门编程语言的基础。

逻辑运算符可以与赋值操作组合,让你的代码更老练:

a = 0 or 100   # a=100
b = 1 or 2  # b=1


第四节 流程控制

经过前面三个小节的学习,我们已经对Python编程语言有了一个初步的了解。如果说Python是一条蟒蛇,变量、数据类型、运算符就是它的肌肉和骨架,而流程控制相当于它的神经系统,掌握了流程控 制知识,就可以让Python灵活的游动起来。

Python的流程控制比较简洁,主要分为两块:条件判断和循环控制。

2.4.1 条件判断
2.4.1.1 if…else…语句

在这里要介绍两个重要的关键字,if 和 else,看它们的字面意思就能猜到它们表示“如果”… “否则”… 我们来看看在代码中如何使用

num = 3

# 通过取模运算判断num是否能被2整除
if num % 2 == 0:
   print(str(num) + "是一个偶数")
else:
   print(str(num) + "是一个奇数")


这一波段代码是一个完整的逻辑,今后我们写的程序会更复杂,但也只不过是这段代码的重复和组合而 已。

2.4.1.2 elif

上面的例子中是一个非常简单的逻辑,一个整数,它要么是偶数要么是奇数,如果说再复杂一点的条件,我们该如何写呢?比如说来判断一个学生的考试成绩,60分以下的为不及格,60~90分为合格,90 分以上为优秀,这里面有三个条件。

score = 59

if score < 60:
   print("您的考试成绩不及格")
elif score < 90:
   print("您的考试成绩合格")
else:
   print("您的考试成绩优秀")


在这个例子中,使用了一个新的关键字"elif", 它只能用在if判断之后,else之前。

2.4.1.3 if 条件嵌套

还是以学生考试成绩的例子来说,现在我们想对60-100分的进行更细的划分,60-70分为合格,70-90 分为良好,90分以上为优秀。

score = 100

if score >= 60:
	if score < 70:
       prin
  • 16
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值