热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python判断类型_python基础(二):变量的数据类型、常量、操作符、分支、循环、条件判断...

文章目录一、变量的数据类型1、int(整型)2、float(浮点型)3、boolean(布尔型)
b0fc4eaf68db173fee88b12bd4b30e69.png

文章目录

一、变量的数据类型

1、int(整型)

2、float(浮点型)

3、boolean(布尔型)

为了更简洁的表示较长的数,python采用e记法:

介绍两个判断数据类型的函数:

(1)type()

(2)isinstance(),官方推荐

二、常量

三、操作符

1、算数操作符

(1)除和地板除法的区别

(2)**乘方运算符

(3)三目运算符

2、赋值操作符

(1)增量复制

(2)链式复制

(3)交叉复制

(4)解压复制

3、比较操作符

(1)比较是否相等

(2)允许连续比较

(3)断言

4、逻辑运算操作符

5、成员运算符

6、身份运算符

四、分支

1、多分支语句

2、python可以有效避免悬挂else

五、循环

1、while循环:

(1)退出循环的两种方式

(2)while+else

2、for 循环:

(1)print中的end和逗号

(2)for应用在数组

(3)for循环中的range函数

(4)break和continue语句

(5)range函数补充知识点

六、条件判断

1、显示布尔值

2、隐式布尔值

一、变量的数据类型

变量推荐写法:

age_of_alex = 10
#做到见名知义,不写拼音、汉字,全为小写

1、int(整型)

注:python中只有整型,没有长度限制,不像java,有短整型、长整型

2、float(浮点型)

注:float和int之间的唯一区别就是有没有小数点。

3、boolean(布尔型)

注:在python中布尔型也是只有两,一个True,一个False,且True相当于是1,False相当于是0.

5df031259280ac2eed7d91620d6b9cd4.png
5e4d63c2eee0c2dea8ebf82c871992a9.png

为了更简洁的表示较长的数,python采用e记法:

7e012f90f9532c2eec49e04fe20816d1.png

5e-12=5 * 10-12

介绍两个判断数据类型的函数:

(1)type()

36518cccde61dfa07058331030318d24.png

python这门语言对大小写有严格要求,还有缩进也有严格要求。

(2)isinstance(),官方推荐

二、常量

常量:不变的量注意:python的语法中没有变量的概念,但是在程序的开发过程中会涉及到常量的概念。

AGE_OF_ALEX=73 #当变量名全大写便代表常量,这是一种约定俗成的规范

三、操作符

1、算数操作符

e0c5b7ea5e4d96365aa09f3a05564164.png

前五个加、减、乘、除、取余、乘方、地板除法

依旧支持+=、-=、*=、/=、%=、**=、//=

注意点:

(1)除和地板除法的区别

e818f060bdc8d6c392c64973d85fe776.png

注:除法是精确除法,地板除法是向下取整!

(2)**乘方运算符

29851f9e0f003886a2c630fb418e4ec2.png

那么想下-3 ** 2它的运算结果是多少:
答案:-9,上面这个相当于:-(3 ** 2)3 ** -2它的运算结果是多少:
答案:1/9,上面这个相当于:3-2

(3)三目运算符

79b881ce41b0c4dd779dfb93bc3d263a.png

2、赋值操作符

(1)增量复制

228406b82bb03da6d8d857f20c115ab7.png

(2)链式复制

>>> z=10
>>> y=z
>>> x=y
>>> x,y,z
(10, 10, 10)

可以多个变量同时赋值。

e7c29738d6cae34fe4cc2ffd5f3bfec0.png

(3)交叉复制

>>> temp=m
>>> m=n
>>> n=temp
>>> m,n

可以一行代码搞定:

>>> m=10
>>> n=20
>>> m,n=n,m # 交叉赋值
>>> m,n
(20, 10)

(4)解压复制

如果我们想把列表中的多个值取出来依次赋值给多个变量名,可以这么做

>>> nums=[11,22,33,44,55]
>>> a,b,c,d,e=nums # nums包含多个值,就好比一个压缩包,解压赋值因此得名
>>> a,b,c,d,e
(11, 22, 33, 44, 55)
>>> a,b,c=nums[2:5] #切片实现截取复制
>>> a,b,c
(33, 44, 55)

3、比较操作符

>、<、&#61;&#61;、!&#61;、>&#61;,<&#61;
这个没有什么说的&#xff01;主要是python在这里两个特色&#xff1a;

&#xff08;1&#xff09;比较是否相等

我们都知道的java的"&#61;&#61;“比较两个字符串是比较它们的地址&#xff0c;但是python中”&#61;&#61;"即使比较字符串也是比较的内容&#xff0c;而不是地址

&#xff08;2&#xff09;允许连续比较

a3c54c4a487fb8df09f1a527934ccd7a.png

&#xff08;3&#xff09;断言

b1b5bcfbb4541b71034e3ede361267ad.png

4、逻辑运算操作符

dd4bf7a0654da1c2a894146a9a424b26.png

这个就是逻辑与、或、非&#xff01;

优先级&#xff1a;not>and>or

5、成员运算符

8ef142f8183423d5d4f745edf66188d5.png

注意&#xff1a;虽然下述两种判断可以达到相同的效果&#xff0c;但我们推荐使用第二种格式&#xff0c;因为not in语义更加明确

>>> not &#39;lili&#39; in [&#39;jack&#39;,&#39;tom&#39;,&#39;robin&#39;]
True
>>> &#39;lili&#39; not in [&#39;jack&#39;,&#39;tom&#39;,&#39;robin&#39;]
True

6、身份运算符

5bce2e151ec4c0532270b7fe9a0fb417.png

需要强调的是&#xff1a;&#61;&#61;双等号比较的是value是否相等&#xff0c;而is比较的是id是否相等

#1. id相同&#xff0c;内存地址必定相同&#xff0c;意味着type和value必定相同
#2. value相同type肯定相同&#xff0c;但id可能不同,如下
>>> x&#61;&#39;Info Tony:18&#39;
>>> y&#61;&#39;Info Tony:18&#39;
>>> id(x),id(y) # x与y的id不同&#xff0c;但是二者的值相同
(4327422640, 4327422256)>>> x &#61;&#61; y # 等号比较的是value
True
>>> type(x),type(y) # 值相同type肯定相同
(, )
>>> x is y # is比较的是id&#xff0c;x与y的值相等但id可以不同
False

四、分支

语句&#xff1a;

if 条件&#xff1a;else&#xff1a;

1、多分支语句

7d5481e42064b10c28919dcc43cf45c9.png

2、python可以有效避免悬挂else

什么叫悬挂else&#xff1f;

d48fe2742eb9338bfb8437870fea62b2.png

c语言中if语句如果不加{}&#xff0c;很容易造成悬挂else&#xff0c;就是else我本来是想和外层if语句匹配&#xff0c;但是c语言这时会根据就近原则和内层if匹配。

python由于有严格的缩进&#xff0c;你的else缩进在哪里&#xff0c;就取决了你选择else属于那个if

五、循环

1、while循环&#xff1a;

e8457177ddaa8246b69459382dde33b2.png

do while循环了。
while循环里的break、continue语句我就不讲了。

&#xff08;1&#xff09;退出循环的两种方式

一个是break&#xff0c;这个不讲了。
另外一个是设置tag&#xff0c;此方法局限性较大。

tag &#61; True
count &#61; 0
while tag:username &#61; input("请输入你的账号&#xff1a;")password &#61; input("请输入你的密码&#xff1a;")if username &#61;&#61; &#39;Mr.wu&#39; and password &#61;&#61; &#39;123&#39;:print("登录成功")while tag:cmd &#61; input("输入命令> ")if cmd &#61;&#61; &#39;q&#39;:tag &#61; Falseelse:print("命令{x}正在运行...".format(x&#61;cmd))else:count &#43;&#61; 1if count &#61;&#61; 3:print("输入错误三次&#xff0c;退出程序...")breakelse:print("输入账号或密码错误&#xff0c;请重新输入")

程序运行效果&#xff1a;

e97305d4873e4252d88ad2c06d0d2436.png

tag直接可以跳出多重循环。

&#xff08;2&#xff09;while&#43;else

语法&#xff1a;
while 条件:代码1代码2if 条件:break
else&#xff1a;代码3

当循环正常执行完毕退出后&#xff0c;else语句中的代码就会执行&#xff0c;循环如果是break退出的&#xff0c;就不会执行。显然这是一个针对break的语法。

案例&#xff1a;

tag &#61; True
count &#61; 0
while tag:username &#61; input("请输入你的账号&#xff1a;")password &#61; input("请输入你的密码&#xff1a;")if username &#61;&#61; &#39;Mr.wu&#39; and password &#61;&#61; &#39;123&#39;:print("登录成功")while tag:cmd &#61; input("输入命令> ")if cmd &#61;&#61; &#39;q&#39;:tag &#61; Falseelse:print("命令{x}正在运行...".format(x&#61;cmd))else:count &#43;&#61; 1if count &#61;&#61; 3:print("输入错误三次&#xff0c;退出程序...")breakelse:print("输入账号或密码错误&#xff0c;请重新输入")
else:print("程序正常执行完毕&#xff01;")

42cf8ed76e7e58fce87f46c16fc99197.png

程序正常执行完毕&#xff0c;执行else里的代码。

6c915edf2fd0cd27974bcfd44e6adb5c.png

2、for 循环&#xff1a;

e8457177ddaa8246b69459382dde33b2.png

&#xff08;1&#xff09;print中的end和逗号

num &#61; &#39;吴晋丞&#39;
for i in num :print(i,end&#61;&#39;&#39;) #其中逗号代表空格

35ca8528fd7666a2b05d0cc94a468619.png

原理解释&#xff1a;为末尾end传递一个空字符串&#xff0c;这样print函数不会在字符串末尾添加一个换行符&#xff0c;而是添加一个空字符串&#xff0c;其实这也是一个语法要求&#xff0c;表示这个语句没结束。end的作用也就是取消换行&#xff0c;如果你把空字符串中加个空格&#xff0c;那么它就是用在字符串末尾添加空格替代添加换行符。

9357e4b03f8a6fd36d5811ba9ff1a4ba.png

&#xff08;2&#xff09;for应用在数组

b82bcbd5306d9c31b7a9aacf3709150a.png

len这个函数是用来计算传入字符串长度的。

java中只能用数字作为参数&#xff0c;制造循环&#xff0c;python中却可以用字符串当作参数

&#xff08;3&#xff09;for循环中的range函数

28221ae04bedd6d04546fd7bb45bc835.png

还可以设置循环的步长

89b0c478f70c7310330086021d52a19d.png

这个range函数保证了python的for循环可以完成java中for循环的所有功能。

&#xff08;4&#xff09;break和continue语句

这个和java中的效果一样&#xff01;

&#xff08;5&#xff09;range函数补充知识点

  • range搭配for可以取索引

a &#61; [1,&#39;a&#39;,True,3]
for i in range(len(a)):print(a[i])
#想下 for i in a:&#xff0c;它们两者的区别

36b7341d2527266bd06728c819e328fb.png

range函数在python3的优化

python2:

00b6a54546b51cd0f364fc03259bda97.png

python3:

d2d5bd4b92c9e12b45a7e379accacfb3.png

python2中直接创建一个存储着range范围内的所有数的列表
python3中是不创建&#xff0c;要用多少&#xff0c;我在用的时候再创建&#xff0c;因为程序for循环搭配range不一定能把range使用完。

python3中的range无疑减少了内存的开销。通俗来说&#xff0c;python2直接把10个蛋给你&#xff0c;python3给你一个能下10个蛋的鸡&#xff0c;你要一个蛋&#xff0c;就给你下一个

六、条件判断

条件一般由比较运算符和逻辑运算符组合而成&#xff0c;逻辑运算符为可要可不要。

age > 10 and sex &#61; &#39;男&#39; #这就是条件判断&#xff0c;最后得到的是一个布尔值

1、显示布尔值

True、False

if True:代码1代码2

2、隐式布尔值

所有数据类型&#xff0c;0&#xff0c;none、空为假&#xff0c;其他都为真

print(not &#39;&#39;)
print(not None)
print(not 0)
print(not [])
print(not 1)
print(not 4)
print(not &#39;abc&#39;)
print(not [1,2])

e429c75b6a5e2506416ca9420c48d54f.png

好啦&#xff0c;今天的分享到这里啦&#xff0c;如果还有什么不懂的可以加入交流群一起学习&#xff08;个性签名&#xff09;

ddfe6c7a73584b6b432ff24cc6dd5a03.png

微信公众号&#xff1a;&#xff08;个性签名&#xff09;




推荐阅读
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • 本文介绍了在Python中使用FOR循环实现用户输入错误值3次后终止程序的方法。作者提到了自己对这个问题的困惑和尝试,并给出了解决方案。该方案要求代码必须包含FOR循环,但作者不确定是需要一个FOR循环还是3个FOR循环。最后,作者还给出了一些示例代码来说明如何将英里转换为公里和将英寸转换为厘米。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
author-avatar
广东淡水未央
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有