Task 1 Python基础入门:从变量到异常处理

本文介绍了Python中位运算的基本用法,探讨了decimal库的精确计算,包括设置精度和实例演示,并详细讲解了布尔函数、类型判断、print函数、assert和enumerate的用法,同时涵盖了异常处理的实践。
摘要由CSDN通过智能技术生成

本学习笔记为阿里云天池龙珠计划Python训练营的学习内容,学习链接为:https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.19700039.J_9059755190.2.7c593ff4Ot9KZZ&postId=169961

一、学习知识点概要

该内容为Python训练营的Task 1,主要为Python语法

二、学习内容

由于前期已经具备了Python代码的编写能力,这里主要记录一些经常忘的操作方法和没见过的操作方法

位运算

python的位运算与c的基本上是一致的

只不过python的取反只能用~

而且可以用bin函数来展示其二进制表示

py中万物接对象,通过dir函数可以展现其相应的属性和方法

精确计算,保留小数

除了常用的format来保留小数以外,这里新学了一个新的方法:调用decimal 包里的 Decimal 对象和 getcontext() 方法来实现。

import decimal
from decimal import Decimal

默认精度28位

decimal库主要来实现浮点数的精确计算,但会带来一定的性能损失

在将浮点数转为Decimal对象时要先将浮点数转为字符串,因为浮点数本身就是不准确的

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])

对于当前环境的精度设置,可以用decimal.getcontext().prec=x来设置

decimal.getcontext().prec = 4
c = Decimal(1) / Decimal(3)
print(c)

# 0.3333

布尔函数

只要容器类型变量不为空bool(X)就是True

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

print

两个主要参数endsep,两者的区别是更改end后如果没有指定添加\n就不会回车,sep中会直接输出给定的分隔字符后接着换行,感觉end也能实现

assert关键词

assert的关键词后的条件为False时,会抛出AssertionError异常

在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。(人为断点吧)

enumerate()

enumerate(sequence, [start=0])
  • sequence:一个序列、迭代器或其他支持迭代对象。
  • start:下标起始位置。
  • 返回 enumerate(枚举) 对象
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
lst = list(enumerate(seasons))
print(lst)
# [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
lst = list(enumerate(seasons, start=1))  # 下标从 1 开始
print(lst)
# [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

可以对传入的迭代对象的每一个进行标记,给予序号

enumerate对象也可以进行for遍历

for i, language in enumerate(languages, 2):
    print(i, 'I love', language) # 对应关系就与传入对象的顺序一致
print('Done!')
# 2 I love Python
# 3 I love R
# 4 I love Matlab
# 5 I love C++
# Done!

异常处理

finally

不管try里面有没有异常,无论如何都会执行的代码

else

没有任何异常发生时会执行的代码

raise

抛出一个指定的异常

try:
    raise NameError('HiThere')
except NameError:
    print('An exception flew by!')
    
# An exception flew by!

三、学习问题与解答

主要查阅了Decimal的作用和方法

四、学习思考与总结

对python的学习是下一步进行许多工作的基础,目前来说掌握这些语法应该足够使用一般的python语句了,之后会进一步进行学习和掌握

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值