python平均成绩计算异常处理_Python训练营-Task 1-Python基础入门:从变量到异常处理...

2.3 变量和赋值

【例子】比较的两个变量均指向不可变类型

a = "hello"

b = "hello"

print(a is b, a == b)

# True True

【例子】比较的两个变量均指向可变类型

a = ["hello"]

b = ["hello"]

print(a is b, a == b)

# False True

注意:is, is not 对比的是两个变量的内存地址

==, != 对比的是两个变量的值

即:假如比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。

假如对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。

2.4 数据类型与转换整型

【例子】找到一个整数的二进制表示,再返回其长度。a = 1031

print(bin(a)) # 0b10000000111

print(a.bit_length()) # 11

2. 浮点型

有时候我们想保留浮点型的小数点后 n 位。可以用 decimal 包里的 Decimal 对象和 getcontext() 方法来实现。

import decimal

from decimal import Decimal

Python 里面有很多用途广泛的包 (package),用什么你就引进 (import) 什么。包也是对象,也可以用上面提到的dir(decimal) 来看其属性和方法。比如 getcontext() 显示了 Decimal 对象的默认精度值是 28 位 ( prec=28 ),展示如下:

a = decimal.getcontext()

print(a)

# Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=

[], traps=[InvalidOperation, DivisionByZero, Overflow])

让我们看看 1/3 的保留 28 位长什么样?

b = Decimal(1) / Decimal(3)

print(b)

# 0.3333333333333333333333333333

那保留 4 位呢?用 getcontext().prec 来调整精度。

decimal.getcontext().prec = 4

c = Decimal(1) / Decimal(3)

print(c)

# 0.3333

3. 布尔型

除了直接给变量赋值 True 和 False ,还可以用 bool(X) 来创建变量,其中 X 可以是基本类型:整型、浮点型、布尔型

容器类型:字符、元组、列表、字典和集合

【例子】bool 作用在基本类型变量: X 只要不是整型 0 、浮点型 0.0 , bool(X) 就是 True ,其余就是 False 。

print(type(0), bool(0), bool(1))

# False True

print(type(10.31), bool(0.00), bool(10.31))

# False True

print(type(True), bool(False), bool(True))

# False True

【例子】bool 作用在容器类型变量: X 只要不是空的变量, bool(X) 就是 True ,其余就是 False 。

print(type(''), bool(''), bool('python'))

# False True

print(type(()), bool(()), bool((10,)))

# False True

print(type([]), bool([]), bool([1, 2]))

# False True

print(type({}), bool({}), bool({'a': 1, 'b': 2}))

# False True

print(type(set()), bool(set()), bool({1, 2}))

# False True

确定bool(X) 的值是 True 还是 False ,就看 X 是不是空,空的话就是 False ,不空的话就是 True 。对于数值变量, 0 , 0.0 都可认为是空的。

对于容器变量,里面没元素就是空的。

4. 获取类型信息

type(object)

print(type(1)) #

print(type(5.2)) #

print(type(True)) #

print(type('5.2')) #

isinstance(object, classinfo)

print(isinstance(1, int)) # True

print(isinstance(5.2, float)) # True

print(isinstance(True, bool)) # True

print(isinstance('5.2', str)) # True

注:type() 不会认为子类是一种父类类型,不考虑继承关系。

isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance() 。

5. 类型转换转换为整型 int(x, base=10)

转换为字符串 str(object='')

转换为浮点型 float(x)

【例子】

print(int('520')) # 520

print(int(520.52)) # 520

print(float('520.52')) # 520.52

print(float(520)) # 520.0

print(str(10 + 10)) # 20

print(str(10.1 + 5.2)) # 15.3

2.5 print() 函数

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按str() 方式进行转换为字符串输出;

关键字参数sep 是实现分隔符,比如多个参数输出时想要输出中间的分隔字符;

关键字参数end 是输出结束时的字符,默认是换行符\n ;

关键字参数file 是定义流输出的文件,可以是标准的系统输出sys.stdout ,也可以重定义为别的文件;

关键字参数flush 是立即把内容输出到流文件,不作缓存。

【例子】每次输出结束都用end 设置的参数& 结尾,并没有默认换行。

shoplist = ['apple', 'mango', 'carrot', 'banana']

print("This is printed with 'end='&''.")

for item in shoplist:

print(item, end='&')

print('hello world')

# This is printed with

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值