为了方便你的学习,减轻负重,我特意将基础语法分成上下两部分。希望你喜欢这种方式,如果不喜欢,你可以跟我说,反正我是不会改的,哈哈~~。

如果上部分,你还没看的话,先去看《第4天 | 12天搞定Python,基础语法(上)》。

python在处理数据时,不可避免的要进行数据类型之间的转换,诸如整型和字符串之间的转换。

4.5 类型转换

转换有隐式和显式转换,隐式也称自动转换,不用做处理。显示转换,也称为数据类型的强制类型转换,通过内置函数实现。

1. 转为整型

通过内置函数int(x [,base]),可把x值转为整数。其中base是进制,默认是10进制。

# 浮点数转为整型,截断小数点
f = 99.5
to = int(f)
print(to)
# 布尔转为整型
b = True
to = int(b)
print(to)
# 字符串转为整型
s = "520"
to = int(s)
print(to)
# 转为16进制
print(int(s, base=16))

输出结果

99
1
520
1312

转换是不是都会成功?--不一定,像字符串内容,比如“酷”,就没办法转成整数。有时候扮酷,是需要付出代价的。

# 非数字内容
s = "酷"
# 转换为整数,报错
to = int(s)
print(to)

输出结果

  to = int(s)
ValueError: invalid literal for int() with base 10: '酷'

既然有异常,那得处理。可在转换前,通过isdigit()函数判断字符串内容是否全是数字,是才转换,不是的话,做其他处理。这里提前剧透条件语句。

# 非数字内容
s = "酷"
if s.isdigit():
to = int(s)
print(to)
else:
print("做其他处理。")

输出结果

做其他处理。

2. 转为浮点型

通过float(x),把x值转为浮点型。

# 整型转为浮点数
i = 99
to = float(i)
print(to)
# 字符串转为浮点数
s = "520.00"
to = float(s)
print(to)

输出结果

99.0
520.0

字符串转为浮点数的过程中,也存在不成功的情况。可惜Python没有直接的函数,可以判断是否为浮点数。最简单直接的判断方法,就是用捕捉异常的方法进行处理。

# 字符串内容
s = "13.10d"
try:
f = float(s)
print("真的是浮点型")
except ValueError:
print("不是浮点型")

输出结果

不是浮点型

3. 转为布尔型

在Python里,整型、浮点型、字符串都可以转为布尔类型。除了0为False,其他的全为True。其中字符串记得用eval()取得表达式,否则"0"返回的是True。因为“0”不是0。

# 整型转为布尔
i = 0
to = bool(i)
print(to)
# 浮点数转为布尔
f = 99.2
to = bool(f)
print(to)
# 字符串转为布尔
s = "0"
to = bool(eval(s))
print(to)

输出结果

False
True
False

4. 转为字符串

通过str(x)函数把x内容,转为字符串,x是指定对象,包括整型、浮点数、数组等等。

# 整型转为字符串
i = 102
to = str(i)
print(to)
# 浮点数转为字符串
f = 36.6
to = str(f)
print(to)
# 布尔转为字符串
b = 0
to = str(b)
print(to)
# 数组转为字符串
array = ["101", "102", "103", "106"]
to = str(array)
print(to)

好的,类型转换到这就告一个段落了,下面,我们进入运算符。

4.6 运算符

一进入小学,咱们就与算术结下了不解之缘,从手算、心算到口算,越算越聪明,越聪明越算,沉迷在算术的世界。可是自从了计算机以后,连写字都懒了,更别提算术了。

谁叫计算机除了可以进行加减乘除算术运算外,还可以进行左边值与右边值的比较运算,再者还可以通过and、or、not运算符进行的逻辑运算呢。

1. 算术运算

算术运算,就是通过+、-、*、%、//符号进行加减乘除、取余和取模的运算,其中被除数不能为0。

(1) 整数和整数相加减、相乘,结果是整数。除的时候,若出现小数,自动转为浮点数。

a = 12  # 整数
b = 20 # 浮点数
# 加法运算
c = a + b
print(c)
# 减法运算
c = a - b
print(c)
# 乘法运算
c = a * b
print(c)
# 除法运算,结果有小数
c = a / b
print(c)

输出结果

32
-8
240
0.6

(2) 整数和浮点数运算,整数会自动升为浮点数,这就是隐式转换,而用转换函数那些的称作显式转换。

a = 20      # 整数
b = 20.25 # 浮点数
# 加法运算
c = a + b
print(c)
# 减法运算
c = a - b
print(c)
# 乘法运算
print(c)
# 除法运算
c = a / b
print(c)

输出结果

40.25
-0.25
-0.25
0.9876543209876543

(3) 浮点数和浮点数进行运算时,结果会出现偏差。像20.65-16.25正确答案应为:4.4,结果却是:4.399999999999999 。

a = 20.65  # 浮点数
b = 16.25 # 浮点数
# 加法运算
c = a + b
print(c)
# 减法运算
c = a - b
print(c)
# 乘法运算
print(c)
# 除法运算
c = a / b
print(c)

输出结果

36.9
4.399999999999999
4.399999999999999
1.2707692307692307

(4) 浮点数偏差问题,可以通过Decimal函数进行解决。

from decimal import Decimal

a = 20.65  # 浮点数
b = 16.25 # 浮点数
# 减法运算
c = Decimal(str(a)) - Decimal(str(b))
print(float(c))

输出结果

4.4

(5) 取模取余

通过%进行取余运算,结果返回除法的余数。通过//进行取模运算,结果返回商的整数部分。

a = 20
b = 16
# 取余运算
c = a % b
print(c)
# 取模运算
c = a // b
print(c)

输出结果

4
1

(6) 幂运算

通过**进行幂运算,结果返回x的y次幂,跟内置函数pow()相同作用。

x = 2
y = 5
# 冥运算
z = x ** y
print(z)
# 冥函数
z = pow(x, y)
print(z)

输出结果

32
32

(7) 复合赋值

复合运算符是算术运算符和赋值运算符合在一起的一种运算符,主要作用方便改变变量的值,有+=、-= 、*=、/=、%=、//=、**= 这7种。a += b ,表示a = a + b。其他的也类似。

a = 10
b = 20
# 加法赋值运算
a += b
print(a)
# 乘法赋值运算
c = 2
d = 50
d *= c
print(d)

输出结果

30
100

2. 比较运算

比较运算,就是通过比较运算符(<、<=、> 、>=、==、!=),对左右两边的对象进行比较,结果返回布尔值:True或False。

a = 10
b = 20
c = 10
# 小于 < 比较
print(a < b)
# 小于等于 <= 比较
print(a <= c)
# 大于 > 比较
print(a > b)
# 大于等于 >= 比较
print(a >= c)
# 等于 == 比较
print(a == b)
# 不等于 != 比较
print(a != b)

输出结果

True
True
False
True
False
True

3. 比较函数

Python3.7内置了比较函数 operator.lt(a, b) 、operator.le(a, b) 、operator.eq(a, b) 、operator.ne(a, b) 、operator.ge(a, b) 、operator.gt(a, b),对应比较运算符,如operator.lt(a, b)对应小于<。 比较运算符一般跟条件语句搭配使用,而用operator.lt(a, b)这种函数,可以直接得到结果布尔True或False)结果。

import operator
a = 10
b = 20
print(operator.lt(a, b))

输出结果

True

还有另一种表达形式:operator.__lt__(a, b) 、operator.__le__(a, b) 、operator.__eq__(a, b) 、operator.__ne__(a, b) 、operator.__ge__(a, b) ,含义是一样的。

import operator
a = 10
b = 20
print(operator.__lt__(a, b))

输出结果

True

4. 逻辑运算

逻辑运算,就是通过与(and)、或(or)、非(not)运算符进行的运算。and表示它的前后条件都成立时,返回True,否则返回False。or表示它的前后条件有一个为True,便返回True,否则返回False。 Not的意思是取相反值,True的not是False,False的not是True。

a = 10
b = 20
c = 30
d = True
# and组合比较
result = a > b and a > c
print(result)
# or组合比较
result = a < b or a > c
print(result)
# not
result = not d
print(result)

输出结果

False
True
False

好了,基础语法到这就全部介绍完了。能学到这的朋友,为自己鼓鼓掌,对着显示器,说一句:瞧你那个傻样,呵呵~~

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我将分享Python,前端(小程序)和App方面的编程知识。关注我,没错的。

第4天 | 12天搞定Python,基础语法(下)的更多相关文章

  1. 第10天 | 12天搞定Python,文件操作(超详细)

    在开发系统的过程中,经常会用到XML存储和传输数据,XML是一种用于标记电子文件使其具有结构性的标记语言,在博客中经常会见到. JSON是一种轻量级的数据交换格式,常被用在后端和前端的数据交互上,如你 ...

  2. 第12天 | 12天搞定Python,让excel飞起来

    学了10多天Python基础知识了,是时候来点硬货了,看过<第1天 | 12天搞定Python,告诉你有什么用?>的老铁都知道,Python可用的领域挺多的.只是我长期待在企业,所以只能说 ...

  3. 第1天|12天搞定Python网络爬虫,吃里爬外?

    人力资源部漂亮的小MM,跑来问我:老陈,数据分析和爬虫究竟是关系呀?说实在的,我真不想理她,因为我一直认为这个跟她的工作关系不大,可一想到她负责我负责部门的招聘工作,我只好勉为其难地跟她说:数据分析, ...

  4. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  5. 第1天 | 12天搞定Python,告诉你有什么用?

    掌握多一门编程语言,多一种选择,多一份机遇,更何况学的是人见人爱,花见花开的Python语言.它目前可占据编程语言排行榜的第3名,是名副其实的"探花郎",无论用它做什么(网络爬虫. ...

  6. 12天搞定Python,基础语法(上)

    不知你是否见过建楼房的过程,没有的话,找个时间去瞧一瞧,看一看.看过之后,你就会明白.建楼房,只有打好地基之后,才能在砌墙,建的楼层越高,打的地基就越深. 学编程也一样,要想得心应手的应用,得先打好地 ...

  7. 第3天 | 12天搞定Python,用PyCharm编写代码

    有了运行环境还不够,在程序的江湖里,还得有一把趁手的"兵器". 工欲善其事,必先利其器,在进行Python开发时,可选择 IDE挺多的,其中,以PyCharm. Eclipse+P ...

  8. 第3天 | 12天搞定Python,用VSCode编写代码

    Visual Studio Code (简称 VS Code), 是一款免费并且开源的现代化轻量级代码编辑器,支持语法高亮.智能代码补全.自定义热键.括号匹配.代码片段等特性,并针对网页开发做了优化. ...

  9. 第2天 | 12天搞定Python,运行环境(超详细步骤)

    倘若有人告诉你,他在学习Python编程,却没有安装运行环境,那你赶紧叫他滚,并离他远点,因为他在欺骗你的感情. 没有安装运行环境,程序根本无法跑起来,对错不能知根知底,试问是在学编程,还是在跟空气对 ...

随机推荐

  1. 仿VISIO连线

    说明: 1.未实现障碍物自动避让功能: 2.未实现添加图元到连线之间,连线自动避开新增图元功能: 后续再完善... version 1: package com.sunsheen.jfids.stud ...

  2. yum wget rpm

    wget 类似于迅雷,是一种下载工具          下载安装包 yum: 是redhat, centos 系统下的软件安装方式 下载安装包并自动安装 以及一些依赖关系 基于RPM包管理,能够从指定 ...

  3. Linux:nginx负载均衡

    前提:web服务器框架已搭建好lamp/lnmp),已配置好虚拟主机名(这个的配置在上几章中有写). nginx做负载均衡主要的模块是upstream. 1.在新的机器上安装nginx 创建用户ngi ...

  4. Linux系统安装01-centos7系统安装

    2020注定是一个不平凡的年份,对于各行各业都是不小的波动.话说回来,从当前的互联网趋势来看,linux的使用以后会越来越广泛,既然之前不懂linux,那么我们就从头开始,先学习Linux的系统安装. ...

  5. git仓库下拉和上传

    git仓库比较方便,可以实现白天在公司写的代码,下班之前上传到git仓库,晚上在另一台电脑上直接下拉下来,其实感觉和开发用的svn差不多 在另一篇博客里面写到,需要先在git里面新增好仓库和成员之后, ...

  6. html+css入门基础案例之圣诞那些事

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Registry 容器镜像服务端细节

    引言 通常我们在使用集群或者容器的时候,都会接触到存储在本地的镜像,也或多或少对本地镜像存储有一定的了解.但是服务端的镜像存储细节呢?本文主要介绍容器镜像的服务端存储结构,对于自建镜像服务或是对容器镜 ...

  8. 利用python简单实现unittest

    python3的eval方法 eval() 函数用来执行一个字符串表达式,并返回表达式的值 # 例如 a = [1,2,3,4] b = "a" print(eval(b)) # ...

  9. IoC基础篇(一)--- Spring容器中Bean的生命周期

    日出日落,春去秋来,花随流水,北雁南飞,世间万物皆有生死轮回.从调用XML中的Bean配置信息,到应用到具体实例中,再到销毁,Bean也有属于它的生命周期. 人类大脑对图像的认知能力永远高于文字,因此 ...

  10. 2019.8.13 sdfzoier

    lxy: lixf acwing上的118,126 zhangtingyu zhaosirui wujialin