1 数据类型

不同类型的变量可以进行的运算是不同的,所以必须理解变量的类型,python中数据类型可以分为:

内置类型:

  • 数值类型:整型int,浮点型float,复数(complex) 3 5j
  • str:字符串
  • bool:布尔值【True,False】
  • None:空值,表示变量没有确定的值
  • list:列表
  • tuple:元组
  • dict:字典
  • set:集合

自定义类型:

  • class :

1.1 基础类型

数值类型:

  • 整型(int): python3中只有int一种,可以表示整数,例如:10,-5,10000
  • 浮点型(float): 表示带小数点的实数,有两种表示法:
    • 小数表示: 1.9 .23
    • 科学计数法: 用e来表示10的指数,1e2就代表了100,注意e前面必须有数值,e后面必须为整数
  • 复数(complex):表示数学上的无理数,形如:a bj
  • 布尔型(bool):表示事务的两种状态,男女、阴晴、亮暗等,它只有两个值:True,False
  • None:表示空对象,一般用于判断,不同于0和空字符
  • 字符串(str):在python中,用引号(单引号、双引号、三引号)表示字符串

字符串的表示:

# 用单引号表示: 'hello'
# 用双引号表示:"我用python"
# 用3个单引号表示:可以表示多行文本,例如:
'''伟大

祖国
'''
# 用3个双引号表示:可以表示多行文本,例如:
"""生死看淡,
不服就干"""

  • 转义字符:有些特殊字符无法从键盘输入,可以使用转义字符表示,另外,无论是单引号、双引号还是三引号字符串,其中引号是字符串界定符,引号并不是字符串的内容,那么如何在单引号字符串中表示一个单引号呢,这也可以使用转义字符表示。常见的转义字符

转义字符

描述

转义字符

描述

​\'​

表示一个普通字符单引号

\n

换行

​\"​

表示一个普通字符双引号

\r

回车

​\'''​

一个普通的三单引号

​\\​

一个普通的字符\

​\"""​

一个普通的三双引号

\a

响铃

\t

tab键

\b

回删一个字符

  • 字符串编码:计算机只能识别二进制,那么字符串如何存储到计算机里呢

计算机不能直接存储字符串,但我们可以将字符编码,例如用65表示大写字符A,66表示大写字符B....等这种表示方式就是美国类的ASCII码,只能表示127个字符,但对于美国人来说已经足够了。一但能用整数表示字符,我们可以很方便的把整数用二进制表示,那么字符串也就和容易存储到计算机了。
但还有很多其他国家的语言是不能用ASCII表示的,所有ISO组织就推出了unicode码,用来表示任何一种语言的字符,unicode码也称之为万国码,通用码,可以表示任何一种语言的任何一个字符。unicdoe码有多中表示方式,例如:utf-8、utf-16、utf-32等。一般使用较多的是utf-8,utf-8是一种变长的编码,表示一个字符可能用一个字节,也可能是三个字节
中文常用编码一般用GBK编码,用2个字节表示一个汉字

1.2 类型判断

我们可以使用type和isinstance来测试和判断数据类型

#type用法:
type(obj)
功能:返回obj的数据类型
参数:obj是你要测试变量或数值
示例:
age = 10
name = 'hello'
print(type(name),type(age))
#判断变量是否是指定类型
if type(age) is int:
print('是')
else:
print('否')

#isinstance用法:
isinstance(obj,typename)
功能:判断obj是否是指定类型,是返回True,否返回False
参数: objobj是你要判断的变量或数值
typename是指定数据类型,可以是int,float,str等。也可是一个
类型的元组,例如:(int,float)
示例:
age = 10
name = 'hello'
print(isinstance(age,int))
print(isinstance(name,(str,int)) #只要name是str或int的一种就返回True

if isinstance(age,int):
print('是')
else:
print('否')

#type和isinstance的区别
type判断基本类型是没问题的,但无法判断子类对象是父类的一种
isinstance可以判断子类对象是父类的一种
class A:
pass
class B(A):
pass

objA = A()
objB = B()

#输出否
if type(objB) is A:
print('是')
else:
print('否')
print(isinstance(objB,A)) #True

结论:优先使用isinstance

2. 运算符和表达式

在数学上为了计算结果,我们会写一些式子计算,例如:

30 5

这是数学中的计算式,python中为了计算也有类似的式子,叫表达式。在表达式中30和5称作操作数, 称之运算符。表达式的目的在于计算结果。表达式构成:

  • 最基本的表达式就是一些数值,变量、函数,例如: 3, a(变量) print(‘hello’)
  • 由基本表达式加上适当的运算符构成复杂的表达式: 3 a

综合上述,所谓表达式就是由操作数和运算符组成䄦符合python语法的式子。要写表达式首先要学习运算符。关于运算符要知道两件事情

  • 计算顺序 : 是从左向右算还是从右向左算
  • 优先级 : 比如先乘除后加减

2.1 算术运算符

a = 20
b = 10

运算符

说明

示例

-

负号,取原数的相反数

a = 10 print(-a) #-10

- * /

加减乘除,同数学上一样

a b = 30 a - b = 10 a * b = 200 a / b = 2

%

模运算,即求 a整除以b的余数

a % 10 = 0

//

整除

a // b = 2

**

对运算符进行指数(幂)计算

a ** b 表示20的10次方

2.2 模运算说明

  • 模运算的符号取决于第二个操作数(右操作数)
  • 模运算的计算公式:r = a % b = a - n * b,其中n是小于a/b的最大整数
  • 整除(//)运算如果有一个操作数是浮点数,结果是浮点数
  • 用途:判断奇偶、判断是否能够整除、最大公约数、水仙花数

2.3 数学函数

函数名

函数的说明

示例

abs

取绝对值

abs(-10)

pow(x,y)

x的y次方

pow(10,2)求10的平方

round(x,[n])

浮点数的4舍5入, n代表保留小数的位数

round(3.456)

max()

求给定参数的最大值

max(21,43,65,75,86,32,3,45)

min()

求给定参数的最小值

min(21,43,65,75,86,32,3,45)

math.ceil()

需要导入import math库 向上取整

math.ceil(18.1) #19

math.floor()

需要导入import math库 向下取整

math.floor(18.1) #18

math.sqrt

需要导入import math库 求平方根

math.sqrt(100)

​ ​python3.5.2中文帮助文档​​

   

2.4 随机函数

获取随机数,需要引入random库。

import random

函数名

函数说明

random.randrange(start,stop,step)

start 指定范围的起始值 包含本身,默认是0;stop 指定范围的结束值 不包含本身; step 步长,默认步长是1。该函数返回一个整数

random.randint(start,end)

返回[start end]之间的一个随机整数,start必须小于end

random.random()

返回一个[0.0,1.0)之间的随机小数

注意:

  • 优先级: ** >正负号 > // % * / > -
  • 从左向右算
  • 在幂运算和一元运算符联合计算时,从右向左算,例如: -1 ** 2 = -1

2.5 赋值运算符

a = 5; b = 10; c = 20

运算符

说明

示例

=

简单赋值, 将b c的结果赋给a

a = b c #a=30

=

a = b等价于 a = a b

a = 15

-=

a -= b等价于 a = a - b

a = -5

*=

a *= b等价于 a = a * b

a = 50

/=

a /= b 等价于a = a / b

a = 0.5

%=

a %= b等价于a = a % b

a = 5

//=

a //= b等价于 a = a // b

a = 0

**=

a **= b等价于a = a ** b

 

注意:

  • 赋值运算符左边必须是变量
  • 从右向左算
  • 没有赋值表达式
  • 所有赋值运算符优先级相同,赋值运算符优先级非常低,仅高于成员运算符和身份运算符、逻辑运算符
  • 注意在复合赋值中
a = 2
b = 3
a *= b   2 #等价于 a = a * (b   2)
print(a) # a = 10

2.6 关系运算

关系运算就是比较运算,如果表达式成立,返回True,否则返回False。关系运算的结果是布尔值。

运算符

示例

说明

==

a == b

a和b值相等,结果是True,a和b值不相等结果为False

!=

a != b

a不等于b 结果为True,否则结果为True

>

a > b

a大于b结果为True,否则为False

>=

a >= b

a大于等于b结果为True,否则为False

<

a < b

a小于b结果为True,否则为False

<=

a <= b

a小于等于b结果为True,否则为False

注意

  • 优先级: 比较运算符优先级相同
  • 从左向右算
  • 可以这样算:​1 < a < 3​​ 等价于 a > 1 and a < 3

2.7 逻辑运算

逻辑运算符可以用于构造复杂条件。逻辑运算符包括:

  • 逻辑与 and 对应汉语的意思是“并且” 、 “同时”
  • 逻辑或 or 对应汉语意思为"或者"
  • 逻辑非 not 对应汉语意思为”相反“

在逻辑运算中,False、None、0、0.0、‘’(空字符串)被看做假(False),其它的看做真(True)

2.7.1 逻辑与

a

b

a and b

任意值

b的值

任意值

a的值

  • 表达式 a and b的值为: 如果a为真,结果为b的值,否则结果是a的值

2.7.2 逻辑或

a

b

a or b

任意值

a的值

任意值

b的值

  • 表达式a or b的值为:如果a为真结果为a的值,否则结果是b的值

2.7.3 逻辑非

a

not a

False

True

小结:a为真则表达式为False,否则表达式为True

2.8 短路计算

  • 对于逻辑与表达式 a and b,如果a为假,则不计算b
  • 对于逻辑或表达式 a or b ,如果a为真,则不计算b

2.9 注意事项

  • 优先级 not > and >or

2.10 身份运算符

is: 判断两个标识符是否引用自同一个实体【对象】,比较的是两个对象的id是否一样,如果相同为真,否则为假

is not:判断两个标识符是不是引用自不同的实体【对象】如果两个对象的id不同结果为真,否则为假

id()函数获取实体的id(地址)

注意:is和==的区别

  • is用于判断两个变量引用实体是否为同一个【id】
  • ==用于判断两个变量的值是否相同,但id不一定相同

2.11 成员运算符

主要应用在序列中

in:如果在指定的序列中找到指定的值,则返回True,否则返回False

not in:如果在指定的序列中未找到指定的值,则返回True,否则返回False

2.12 if-else表达式

表达式1 if 条件 else 表达式2,如果条件为真假结果是表达式1的值,否则结果是表达式2的值

到此这篇关于python变量数据类型和运算符的文章就介绍到这了,更多相关python 运算符内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

python变量数据类型和运算符的更多相关文章

  1. ios – 如何从变量访问属性或方法?

    是否可以使用变量作为Swift中方法或属性的名称来访问方法或属性?在PHP中,您可以使用$object->{$variable}.例如编辑:这是我正在使用的实际代码:解决方法你可以做到,但不能使用“纯粹的”Swift.Swift的重点是防止这种危险的动态属性访问.你必须使用Cocoa的Key-ValueCoding功能:非常方便,它完全穿过你要穿过的字符串到属性名称的桥,但要注意:这里是龙.

  2. iOS &gt;&gt;块&gt;&gt;更改块外部的变量值

    我不是在处理一个Object并改变它,就像我的mString一样.我希望’center’属性的行为类似于myInt,因为它是直接访问的C结构,而不是指向对象的指针.我希望’backgroundColor’的行为类似于我的imstring,因为它是一个指向一个新对象的对象的指针,不是吗?

  3. ios – Xcode Bot:如何在post触发器脚本上获得.ipa路径?

    我正在使用机器人来存档iOS应用程序,我需要获取.ipa产品路径才能将其发布到我们的分发系统中.机器人设置:并使用脚本打印所有env变量,其中不包含ipa文件的路径.此外,一些变量指向不存在的目录,即:XCS_OUTPUT_DIR这里的env变量输出:除此之外,我还能够确认.ipa文件是在另一个文件夹中创建的(/IntegrationAssets//

  4. ios – 使用附加字符串本地化Info.plist变量

    我正在尝试本地化应用程序的名称,同时仍然能够根据构建配置追加字符串.所以目前它被设置为:该设置定义为:通过这种方式,我们可以为应用程序添加后缀以用于不同的beta版本.问题是,当我们尝试本地化本地化的InfoPlist.strings中的应用程序显示名称时,就像这样我们覆盖存储在Info.plist中的值,并丢失后缀字符.这有什么好办法吗?

  5. iOS – 开始iOS教程 – 变量之前的下划线?

    这是正确的还是我做错了什么?

  6. ios – 静态计算变量被多次实例化

    我有一个日期格式化程序,我试图在UITableViewCell子类中创建一个单例,所以我创建了一个这样的计算属性:问题是我不止一次看到print语句,这意味着它不止一次被创建.我已经找到了其他方法,但我很想知道这里发生了什么.有任何想法吗?解决方法您的代码段相当于只获取属性,基本上它与以下内容相同:如果你只想运行一次,你应该像定义一个惰性属性一样定义它:

  7. ios – UIApplication.delegate必须仅在主线程中使用[复制]

    我应该在主调度中的viewControllers中声明这些)变量位置声明定义了它的范围.您需要确定这些变量的范围.您可以将它们声明为项目或应用程序级别(全局),类级别或特定此功能级别.如果要在其他ViewControllers中使用这些变量,则使用公共/开放/内部访问控制将其声明为全局或类级别.

  8. ios – 无法理解Objective-C块文档

    为什么localVariable“按价值使用?”>如果我在第二个例子中将__block存储类型添加到localVariable,我错误地假设该块关闭了变量,所以它将它保留在堆中直到块被释放?解决方法Howexactlyisoneexample“accessedbyreference”whiletheotheroneisaccessedbyvariable?self是当前正在执行找到块的方法的对象.强引用只是意味着对象的保留计数增加.IfIaddthe__blockstoragetypetolocalVar

  9. ios – 为BOOL变量编写getter和setter

    显然,使用obj-c,通常没有理由编写getter和setter(感谢有用的mr@synthesize).所以现在,需要做到这一点,我遇到了一个我不知道如何编写它们的问题.:p我敢肯定我可能不会以正确的方式解决我的问题–只是将我的对象子类化得更容易–但我正在尝试编写类别代码以添加属性,因为(在开头)它更快,因为我想学习如何在我的应用程序中使用类别代码.我有这个:我在setter中没有if查询就试过

  10. XCode 3.2 Ruby和Python模板

    在xcode3.2下,我的ObjectiveCPython/Ruby项目仍然可以打开更新和编译,但是你无法创建新项目.鉴于xcode3.2中缺少ruby和python的所有痕迹(即创建项目并添加新的ruby/python文件),是否有一种简单的方法可以再次安装模板?我发现了一些关于将它们复制到某个文件夹的信息,但我似乎无法让它工作,我怀疑文件夹的位置已经改变为3.2.解决方法3.2中的应用程序模板

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部