第4天 | 12天搞定Python,基础语法(下)
为了方便你的学习,减轻负重,我特意将基础语法分成上下两部分。希望你喜欢这种方式,如果不喜欢,你可以跟我说,反正我是不会改的,哈哈~~。
如果上部分,你还没看的话,先去看《第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,基础语法(下)的更多相关文章
- 第10天 | 12天搞定Python,文件操作(超详细)
在开发系统的过程中,经常会用到XML存储和传输数据,XML是一种用于标记电子文件使其具有结构性的标记语言,在博客中经常会见到. JSON是一种轻量级的数据交换格式,常被用在后端和前端的数据交互上,如你 ...
- 第12天 | 12天搞定Python,让excel飞起来
学了10多天Python基础知识了,是时候来点硬货了,看过<第1天 | 12天搞定Python,告诉你有什么用?>的老铁都知道,Python可用的领域挺多的.只是我长期待在企业,所以只能说 ...
- 第1天|12天搞定Python网络爬虫,吃里爬外?
人力资源部漂亮的小MM,跑来问我:老陈,数据分析和爬虫究竟是关系呀?说实在的,我真不想理她,因为我一直认为这个跟她的工作关系不大,可一想到她负责我负责部门的招聘工作,我只好勉为其难地跟她说:数据分析, ...
- 吾八哥学Python(四):了解Python基础语法(下)
咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...
- 第1天 | 12天搞定Python,告诉你有什么用?
掌握多一门编程语言,多一种选择,多一份机遇,更何况学的是人见人爱,花见花开的Python语言.它目前可占据编程语言排行榜的第3名,是名副其实的"探花郎",无论用它做什么(网络爬虫. ...
- 12天搞定Python,基础语法(上)
不知你是否见过建楼房的过程,没有的话,找个时间去瞧一瞧,看一看.看过之后,你就会明白.建楼房,只有打好地基之后,才能在砌墙,建的楼层越高,打的地基就越深. 学编程也一样,要想得心应手的应用,得先打好地 ...
- 第3天 | 12天搞定Python,用PyCharm编写代码
有了运行环境还不够,在程序的江湖里,还得有一把趁手的"兵器". 工欲善其事,必先利其器,在进行Python开发时,可选择 IDE挺多的,其中,以PyCharm. Eclipse+P ...
- 第3天 | 12天搞定Python,用VSCode编写代码
Visual Studio Code (简称 VS Code), 是一款免费并且开源的现代化轻量级代码编辑器,支持语法高亮.智能代码补全.自定义热键.括号匹配.代码片段等特性,并针对网页开发做了优化. ...
- 第2天 | 12天搞定Python,运行环境(超详细步骤)
倘若有人告诉你,他在学习Python编程,却没有安装运行环境,那你赶紧叫他滚,并离他远点,因为他在欺骗你的感情. 没有安装运行环境,程序根本无法跑起来,对错不能知根知底,试问是在学编程,还是在跟空气对 ...
随机推荐
- 基于arm v8搭建区块链环境
服务器信息: cpu:华为鲲鹏 cpu架构:arm v8 系统:CenOS-AltArch 7.6 相关工具安装 yum更新 yum update 安装vim/gcc/git/curl工具软件 yum ...
- JS实现串行请求
使用async和await var fn = async function(promiseArr) { for(let i = 0,len = arr.length; i<len; i++) { ...
- MvvmLight框架使用入门(5)
上一次写MvvmLight框架使用入门(4)的时候还在用Visual Studio 2015,我儿子也不会过来盖上我的XPS……重启这个系列一方面是因为最近又开始写UWP的东西了,另一个是因为Mvvm ...
- LuoGu P1909 买铅笔???
题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公平起 见,P老师决定只买同一种包装的铅笔. ...
- 在 Flutter 中使用 TensorFlow Lite 插件实现文字分类
如果您希望能有一种简单.高效且灵活的方式把 TensorFlow 模型集成到 Flutter 应用里,那请您一定不要错过我们今天介绍的这个全新插件 tflite_flutter.这个插件的开发者是 G ...
- JavaScript中常用的数据输出方式解析
在js中,一般使用如下几种方式进行数据的输出: 1. 在浏览器的控制台输出 浏览器F12打开浏览器控制台(一般前端开发人员必备浏览器为谷歌浏览器,下面就以谷歌浏览器为例对控制台尽心解析): 1.1 E ...
- Docker部署ElasticSearch以及使用
ElasticSearch笔记 1. ElasticSearch前期 1.1 聊聊ElasticSearch的简介 Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引 ...
- python文档翻译之python说明
3.1使用Python进行计数 让我们来使用一些Python的简单命令,通过终端启动解释器等待出现>>>. 3.1.1数值类型 在终端中输入数学表达式,Python解释器会执行这些表 ...
- 1.2Hadoop概述
- 确成硅化+恒力+苏大文正节点2 oracle ora-4030 错误pga version:11204
Errors in file /u01/app/oracle/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_61543.trc (incident=18009 ...