python----数据类型/运算符

本文介绍了Python中的数据类型,包括数字、字符串、元组、布尔和空值等,强调了哈希类型和不可哈希类型的区别。还详细讲解了Decimal和Fraction模块,以及各种运算符的使用,如算术、比较、赋值、逻辑等。并提醒在使用可变类型如列表作为函数参数时需要注意的事项。
摘要由CSDN通过智能技术生成

**

3.数据类型

**

数字类型:int,float ,decimal,Decimal,fraction,coplex
字符串类型:str,bytes
元祖:typle
布尔类型:True,False
空值:None
冻结类型:frozenset

python :分成了两大类型:哈希类型和不可哈希类型

哈希类型:即在原地不能改变的变量类型,不可变类型。可利用hash函数查看其hash值,也可以作为字典的key

*不可哈希类型;原地可变的:字典(字典的键是不可变得,所以是不可哈希)
什么叫不可变:这个值一旦变了,就不能给这个变量赋新值
【list(列表),dict(字典),set(集合)】 这三个不可作为字典的值

Python3 中有六个标准的数据类型:
Number(数字),String(字符串),List(列表),Tuple(元组)
Set(集合),Dictionary(字典)

Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

数字常量:

"""
    1234, -1234, 0, 999999999                    # 整数
    1.23, 1., 3.14e-10, 4E210, 4.0e+210          # 浮点数
    0o177, 0x9ff, 0X9FF, 0b101010                # 八进制、十六进制、二进制数字
    3+4j, 3.0+4.0j, 3J                           # 复数常量,也可以用complex(real, image)来创建
    hex(I), oct(I), bin(I)                       # 将十进制数转化为十六进制、八进制、二进制表示的“字符串”
    int(string, base)                            # 将字符串转化为整数,base为进制数
    # 2.x中,有两种整数类型:一般整数(32位)和长整数(无穷精度)。可以用l或L结尾,迫使一般整数成为长整数
    float('inf'), float('-inf'), float('nan')    # 无穷大, 无穷小, 非数
"""
pint(type(...))----查看类型

Decimal模块:小数模块

import decimal
from decimal import Decimal
Decimal("0.01") + Decimal("0.02")        # 返回Decimal("0.03")
decimal.getcontext().prec = 4            # 设置全局精度为4 即小数点后边4位

Fraction模块:分数模块

from fractions import Fraction
x = Fraction(4, 6)                       # 分数类型2/3
print(x)
x = Fraction("0.25")                     # 分数类型 1/4 接收字符串类型的参数
print(x)

#列出python 中可变数据类型和不可变数据类型,并简述原理:

"""
不可变数据类型:数值型,字符串型,元组;
不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,
而对于相同值的对象,在内存中则只有一个对象(一个地址);
如下例用id()方法可以打印出对象的id
"""
numbera =1
numberb = 3
print (f'numbera 的ID为{id(numbera)},numberb 的id为{id(numberb)}')
python 把每一个东西都当做对象,既然是对象就会有属性,

Python3
//:这才是整除 --2里面 / 一个就是整除
“”"
Python 支持的常见运算如下:不建议死记硬背,建议多练习与根据项目需要去用,用的过程中记住
算术运算符
比较(关系)运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
运算符优先级

“”"

常用的运算符

Operators: 运算符 + - * / ** // %

print(1 + 1)
print(2 - 2)
print(3 * 3)
print(5 / 4)
print(2 ** 10)
print(5 // 4)
print(5 % 4)

Casting 转换

Integer -> Float

print(float.__doc__)   ----内置方法。两个下划线开头,两个下划线结尾,通常都是内置的方法
print(float(3))
print(3 / 1)
print(float("3.14"))

#比较运算符,常见的< ,>,<= ,>= ,== ,!=

#is : 判断两个标识符是不是引用来自一个对象,可以取反
例1:
lista = [1, 2, 3]
listb = [1, 2, 3]
a == b  ---判断是否相等,等返回True ,不等返回Flose

例2:

x = 10
y = x
x += 5
print ("x=", x)
print ("y=", y)
答:
x = 15
y = 10

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

 例3:
    a = [1,2,3]
    b = a
    a += 4
    print("a =", a)
    print("b =", b)
    结果会报错,int类型不可迭代
    下面这个:|
    a = [1,2,3]
    b = a
    a.append(4)
    print("a =", a)
    print("b =", b)

a:这个变量是可变类型
b不是
结合上述讲的:可哈希不可哈希,
可变类型不建议把他变成参数.
比如说:写一个函数,他的参数最好不要用list(列表),如果非要用,要先做判断,判断他是否为空值。

因为list是特殊额,往往需要判断他的类型
因为判断一个变量类型,用type来判断类型
以下用list为例:

L = [] ---- list值为空

– 测试类型的三种方法,推荐第三种

if type(L) == type([]):
    print("L is list")
    
if type(L) == list:
    print("L is list")
    
if isinstance(L, list):
    print("L is list")

逻辑运算:

x = True
y = False
print(x and y, x or y, not x)   # 逻辑与(and)、逻辑或(or)、逻辑非(not)
print(x is not y)

"""
#-- 数字的表达式操作符
    yield x                                      # 生成器函数发送协议  :后面再用到再讲
    lambda args: expression                      # 生成匿名函数        :后面再用到再讲
    x if y else z                                # 三元选择表达式      :后面再用到再讲
    x and y, x or y, not x                       # 逻辑与、逻辑或、逻辑非
    x in y, x not in y                           # 成员对象测试
    x is y, x is not y                           # 对象实体测试
    x<y, x<=y, x>y, x>=y, x==y, x!=y             # 大小比较,集合子集或超集值相等性操作符
    1 < a < 3                                    # Python中允许连续比较
    x|y, x&y, x^y                                # 位或、位与、位异或
    x<<y, x>>y                                   # 位操作:x左移、右移y位
    +, -, *, /, //, %, **                        # 真除法、floor除法:返回不大于真除法结果的整数值、取余、幂运算
    -x, +x, ~x                                   # 一元减法、识别、按位求补(取反)
    x[i], x[i:j:k]                               # 索引、分片         :后面再用到再讲
    int(3.14), float(3)                          # 强制类型转换       
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值