前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫基础——03-类型转换和运算符

Python爬虫基础——03-类型转换和运算符

作者头像
冷影玺
发布2023-10-11 19:55:25
2070
发布2023-10-11 19:55:25
举报
文章被收录于专栏:冷影玺

2.6,类型转换

函数

说明

int(x)

将x转化成一个整数

float(x)

将x转化成一个浮点数

str(x)

将对象x转化成字符串

bool(x)

将对象x转化成布尔值

2.6.1转换成整型:

代码语言:javascript
复制
1---1
# 字符串(str)---转换整型(int)
a = '123'
print(type(a))  # 输出结果为---<class 'str'>
b = int(a)  # 将字符串转换成整型
print(type(b))  # 输出结果为---<class 'int'>

# 注意:123.456和12ab字符串都包含了非法字符,不能被转换成整数,会报错
# 以下 如果字符串中包含了非法的字符 则报错
a = '1.23' # 或者a = '12ab'都会报错
print(type(a))
b = int(a)
print(b)
print(type(b))

2---2
# 浮点型(float)---整型(int)
a = 1.3
print(type(a))  # 输出结果为---<class 'float'>
# 如果我们将float转化为整数 那么会返回的是小数点前面的数据
b = int(a)
print(b)   # 输出结果为1因为转换成int之后输出的是小数点前面的数字
print(type(b))   # 输出结果为---<class 'int'>


3---3
# 布尔型(boolean)---整型(int)
a = True
print(type(a))  # 输出结果为<class 'bool'>
b = int(a)
print(b)  #当a = True输出结果为1  当a = Flase输出结果为0
print(type(b))  #输出结果为<class 'int'>

2.6.2转换成浮点数:

代码语言:javascript
复制
# 当我们在爬虫的时候大部分获取的都是字符串数据类型、

1---1
# 字符串(str)---浮点数(float)
a = '12.34'
print(type(a))   # 输出类型--<class 'str'>
b = float(a)
print(b)  # 输出结果为12.34
print(type(b))  # 输出结果为--<class 'float'>

2----2
# 整型(int)---浮点型(float)
a = 666
print(type(a))  # 输出结果为---<class 'int'>
b = float(a)
print(b)  # 输出结果为 666.0 已经转换
print(type(b))  # 输出结果为---<class 'float'>

2.6.3转换成字符串:

代码语言:javascript
复制
注意:'大部分的应用场景是将整型转换成字符串'

1---1
# 整型(int)---字符串(str)
a = 80
print(type(a))  # 输出结果为---<class 'int'>
b = str(a)
print(b)  # 输出结果为80
print(type(b)) # 输出结果为---<class 'str'>

2---2
# 浮点数(float)---字符串(str)
a = 1.2
print(type(a)) # 输出结果为---<class 'float'>
b = str(a)
print(b) # 输出结果为1.2
print(type(b))  # 输出结果为---<class 'str'>


3---3
# 布尔(bool)---字符串(str)
a = True
print(type(a))  # 输出结果为---<class 'bool'>
b = str(a)
print(b)  # 输出结果为True不是返回值1
print(type(b))  # 输出结果为---<class 'str'>已经成功转换

2.6.4转换成布尔:

代码语言:javascript
复制
1---1
# 整型(int)---布尔(bool)
a = 1 # 当a=任何正数结果均为True
print(type(a))  # 输出结果为---<class 'int'>
b = bool(a)
print(b)  # 输出为True
print(type(b))  # 输出结果为---<class 'bool'>

a = -1 # 当a=任何负数依然为True
print(type(a))
b = bool(a)
print(b)  # 输出结果为True
print(type(b))

a = 0  # 当a等于0时输出结果为为False
print(type(a))
b = bool(a)
print(b)  # 输出结果为False
print(type(b))
'所以综上所述可得 当int整型除了0时等于False其他不管正负转换输出结果依然时True'

2---2
# 浮点数(float)---布尔(bool)
a = 1.0 # 当a = -1.0输出结果依然时True
print(type(a))  # 输出结果为---<class 'float'>
b = bool(a)
print(b)  # 输出结果为True
print(type(b))  # 输出结果为---<class 'bool'>

3---3
# 字符串(str)---布尔(bool)
a = '江户川柯南'
print(type(a)) # 输出结果为---<class 'str'>
b = bool(a)
print(b)  # 输出结果为True
print(type(b))  # 输出结果为---<class 'bool'>
'所以综上所述只要字符串有内容那么强制类型转换为bool的时候,那么就返回True.所以''没内容时那就返回False'

4---4
# 列表(list)---布尔(bool)
a = ['琴酒','伏特加','基安蒂']  #当a=[]为False
print(type(a))  # 输出结果为---<class 'list'>
b = bool(a)
print(b)  # 输出结果为True
print(type(b))  # 输出结果为---<class 'bool'>
'所以综上所述当列表里面只要有内容时全部都是True当为[]空时返回值False'


5---5
# 元组(tuple)---布尔(bool)
a = ('黑羽快斗','中森晴子')
print(type(a))  # 输出结果为---<class 'tuple'>
b = bool(a)
print(b)  # 输出结果为True
print(type(b))  # 输出结果为---<class 'bool'>
'所以综上所述当元组里面只要有内容时全部都是True当为()空时返回值False'

6---6
# 字典(set)---布尔(bool)
a = {'name','冷影玺'}
print(type(a))  # 输出结果为---<class 'set'>
b = bool(a)
print(b)  # 输出结果为True
print(type(b))  # 输出结果为---<class 'bool'>
'所以综上所述当字典里面只要有内容时全部都是True当为{}空时返回值False'

7---7
# 什么情况下是Flase
print(bool(0))
print(bool(0.0))
print(bool(''))
print(bool(""))
print(bool([]))
print(bool(()))
print(bool({}))

2.7,运算符

2.7.1算数运算符:

下面以a=10,b=20为例计算

运算符

描述

实列

+

两个对象相加a+b输出结果30

-

两个对象相减a-b输出结果-10

*

两个相乘或是返回一个被重复若干次的字符串a*b输出结果200

/

b / a 输出结果等于2

%

取余

返回除法的余数 b % a 输出结果 0

**

指数

a ** b为10的20次方

( )

小括号

提高运算优先级:比如(1 + 2) * 3

注意:混合运算时,优先级顺序为:** 高于 * / % // 高于 + -为了便面歧义,建议用( )来处理运算符优先级。

并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算

代码语言:javascript
复制
a = 3
b = 2

# 加
print(a + b)    #输出 5

# 减
print(a -b)     #输出 1

# 乘
print(a * b)    #输出 6

# 除
print(a / b)    #输出 1.5

# 取整数
print(a // b)   #输出 1

# 取余数
print(a % b)    #输出 1

# 指数
print(a ** b)   #输出 9

# 小括号()
print((a + b) * b)  #输出 10

# 扩展
# 字符串相加为拼接
a = '123'
b = '456'
print(a + b)    # 输出结果123456

# 注意如果两端相加减必须都为整型或者字符串,但是可以使用强制转换进行执行
# a = '123'
# b = 456
# print(a + str(b))

# 字符串还可以进行相乘输出
a = '工藤新一'
print(a * 3)    # 输出结果 工藤新一 工藤新一 工藤新一

2.7.2赋值运算符:

运算符

描述

实例

=

赋值运算符

把 = 号右边的结果赋给左边,如num=1 + 2 * 3,结果num的值为 7

代码语言:javascript
复制
# 简单输出
a = 10
print(a)

# 同时为多个变量赋值
b = c = 20
print(b)
print(c)

# 多个变量赋值用都逗号隔开

d,e,f = 1,2,3
print(d)
print(e)
print(f)

2.7.3复合赋值运算符:

运算符

描述

实例

+=

加法赋值运算符

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

代码语言:javascript
复制
# +=
a = 1
# a在+上一个2打印结果
a += 2  # 其方式等同于a = a + 2
print(a)

# *=
b = 2
# b在乘以3则就可以写成
b *= 3
print(b)

# -=
c = 4
# c在减去2
c -= 2
print(c)

# /=
d = 3
# d在除以2
d /= 2
print(d)

# //=

e = 3
# e整除一个2
e //= 2
print(e)

# % 名字叫 取模 取余 模余  %=
f = 5
# f取余一个2余1
f %= 2
print(f)


# **=
g = 5
# 求一下g的三次幂
g **= 3
print(g)

2.7.4比较运算符:

以下变假设:变量a=10,变量b=20

运算符

描述

实例

==

等于:比较对象是否相等

(a == b) 返回False

!=

不等于:比较两个对象是否不相等

(a != b) 返回True

>

大于:返回x是否大于y

(a > b) 返回False

>=

大于等于:返回x是否大于等于y

(a >= b) 返回False

<

小于: 返回x是否小于y

(a < b) 返回True

<=

小于等于:返回x是否小于等y

(a <= b) 返回True

 比较运算符返回的都是布尔bool类型的数据

代码语言:javascript
复制
# == 恒等 一般情况下判断两边数据是否一致
a = 10
b = 20  # 输出结果False。如果b=10则输出结果True
print(a == b)

# != 不等  一般情况下判断两边是否不一致
a = 10
b = 20  # 输出结果是True 如果b=10输出结果则是False
print(a != b)

# >
print(10 > 20)  # 不是所以输出False
print(10 > 5)   # 是 所以输出True

# >=
print(10 >= 10)     # 是 所以输出True
print(10 >= 20)     # 不是所以输出False

# <
print(10 < 10)      # 不是所以输出False
print(10 < 20)      # 是 所以输出True

# <=
print(10 <= 10)     # 是 所以输出True
print(10 <= 2)      # 不是所以输出False

2.7.5逻辑运算符:

运算符

逻辑表达式

描述

实例

and

x and y

只要有一个运算数是False,结果就是False。只有所有的运算数都为True时,结果才是True。做取值运算时,去第一个为False的值,如果所有的值都为True取最后一个值。

True and True and False 结果为False --- True and True and True 结果为True。

or

x or y

只要有一个运算符是True,结果就是True。只要所有的运算数都为False时,结果才是False。做取值运算时,取第一个为True的值,如果所有的值为False取最后一个值。

False or False or True 结果为True。--- False or False or False 结果为False。

not

not x

布尔"非" - 如果x为True,返回False,如果x为False返回True。

not true --- not False

代码语言:javascript
复制
# 逻辑运算符 and=与  or=或  not=非

# and   与
# and两边的数据 必须都是true的时候才会返回true,只要有一方为false那么就返回false
print(10 > 20 and 10 > 15)  # false and false
print(10 > 15 and 10 > 5)   # false and true
print(10 > 5 and 10 > 15)   # true  and false
print(10 > 5 and 10 > 6)    # true and true 所有只有这个输出时true


# or 或
# or两端只要有一端是true则就输出true
print(10 > 20 or 10 > 30)   # false or false  输出false其余均输出true
print(10 > 5 or 10 > 20)    # true or false
print(10 > 20 or 10 > 5)    # false or true
print(10 > 5 or 10 > 6)     # true or true   输出失败

# not 非 也就是取反值

print(not True)     # 输出为false
print(not False)    # 输出结果true
print(not 10 > 20)  # 输出结果为true
print(not 10 > 5)   # 输出结果为false

逻辑运算符and和or的性能提升:

代码语言:javascript
复制
# and的性能优化当前面是false那么后面的true则就不会执行
a = 88
a > 66 and print('hello world')  # 正常输出
a > 99 and print('hello world')  # 输出失败

# or的性能优化当前面是true不会执行,前面是false正常执行
a = 88
a > 99 or print('你好,世界')    # 正常输出
a > 66 or print('你好,世界')    # 输出失败
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.6,类型转换
    • 2.6.1转换成整型:
      • 2.6.2转换成浮点数:
        • 2.6.3转换成字符串:
          • 2.6.4转换成布尔:
          • 2.7,运算符
            • 2.7.1算数运算符:
              • 2.7.2赋值运算符:
                • 2.7.3复合赋值运算符:
                  • 2.7.4比较运算符:
                    • 2.7.5逻辑运算符:
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档