Python 学习笔记 2 :数值表示、基本运算和常见异常类型

前言

学习笔记1——入门基础(格式、字符串和转义序列)

程序中的大多数语句(逻辑行)都包含表达式(Expressions)。
例如,2+3 ,表达式可以拆分为运算符(Operators)与操作数(Operands);
运算符(Operators)是进行某些操作,并且可以使用一些如(+)等符号或特殊关键词加以表达的功能;运算符需要一些数据来进行操作,这些数据就被称为操作数(Operands),如上述例子中的 23

数值表示

十六进制、八进制和二进制数值表示

>>> 0xAF
175
>>> 0o10
8
>>> 0b1011010010
722
>>> 

无穷大与无穷小表示

# 表示正无穷大
float('inf')
float('Inf')
# 表示负无穷大
float('-inf')
float('-Inf')
-float('inf')
-float('Inf')
>>> a = float('inf')
>>> b = float('-inf')
>>> a
inf
>>> b
-inf
>>> a + 99
inf
>>> a * 10
inf
>>> a / 10
inf
>>> c = - b
>>> a == c
True

无穷大加上常数或者乘上常数还是无穷大,无穷大和无穷大相等;
常数除以无穷大则为 0 。

非数字表示 NaN

d = float('nan')

任何常数加、乘 nan,其结果仍然是 nan
nan 也不可以与其他数或者 nan 进行比较,操作均返回 False

无穷大除以自己是 nan,正无穷和负无穷的和也是 nan

>>> a/a
nan
>>> a/b
nan

基本运算

运算符

  • + (加)
    两个对象相加
    3+5 则输出 8'a' + 'b' 则输出 'ab'

  • - (减)
    从一个数中减去另一个数,如果第一个操作数不存在,则假定为 0
    -5.2 将输出一个负数;50-24 输出 26

  • *(乘)
    给出两个数的乘积,或者返回字符串重复指定次数后的结果
    2*3 输出 6'la'*3 输出 'lalala'

  • **(乘方)
    返回 x 的 y 次方
    3**4 输出 81 (即 3*3*3*3

  • / (除)
    x 除以 y
    13/3 输出 4.33333333333333

  • //(整除)
    x 除以 y 并对结果 向下取整 至最接近的整数
    13//3 输出 4
    -13//3 输出 -5

  • %(取模)
    返回除法运算后的余数
    13%3 输出 1-25.5%2.25 输出 1.5

  • <<(左移)
    将数字的位向左移动指定的位数(每个数字在内存中以二进制数表示,即 0 和 1)
    2<<2 输出 8
    2 用二进制表示为 10;向左移 21000 ,表示为十进制中的 8

  • >>(右移)
    将数字的位向右移动指定的位数
    11>>1 输出 5
    11 在二进制中表示为 1011; 右移一位后为 101 ,表示为十进制中的 5

  • & (按位与)
    对数字进行按位与操作
    5&3 输出 1

  • |(按位或)
    对数字进行按位或操作
    5|3 输出 7

  • ^(按位异或)
    对数字进行按位异或操作
    5^3 输出 6

  • ~(按位取反)
    x 的按位取反结果为 -(x+1)
    ~5 输出 -6

  • <(小于)
    返回 x 是否小于 y;所有的比较运算符返回的结果均为 True 或者 False
    5<3 输出 False3<6 输出 True
    比较可以任意组成连接:3<5<7 返回 True

  • >(大于)

  1. 所有正整数的按位取反是其本身+1的负数: ~5 输出 -6
  2. 所有负整数的按位取反是其本身+1的绝对值: ~(-5) 输出 4

求绝对值

# 方法1:利用条件判断
a = float(intput('Please input a number: '))
if a>=0:
	pass
else:
	a = -a
print('a 的绝对值为 {}'.format(a))

# 方法2:利用内置函数
b = float(intput('Please input a number: '))
b = abs(b)
print('b 的绝对值为 %f' % b)

# 方法3:利用内置模块
c = float(intput('Please input a number: '))
c = math.fabs(c)
print('c 的绝对值为 ' + str(a))

# 方法1 和 方法3 的输出格式都可以保证与原始输入数的小数位一致
# 方法2 的输出格式可以自己制定小数位,默认是六位

运算符号:/ 和 //

" / " 表示浮点数除法,返回 浮点结果
" // " 表示整数除法,返回 不大于结果的一个最大的整数

print("6 // 4 = " + str(6 // 4))   # 6 // 4 = 1
print("6 / 4 = " + str(6 / 4))     # 6 / 4 = 1.5

round 函数可以将浮点数圆整为与之最接近的整数,并且在两个数一样近时,圆整到偶数

>>> 2 // 3
0
>>> round(2/3)
1

如果要将给定的数 向下圆整,可以使用 floor

>>> import math
>>> math.floor(32.9)
32

如果要将给定的数 向上圆整,可以使用 ceil

>>> math.ceil(32.3)
33
>>> math.ceil(32)
32

运算符号:%

1、作为数学运算符 %

对于两个整数 ab
a % b = a 整除 b 的余数

>>> 10 % 3
1
>>> 10 % (-3)
-2
>>> -10 % 3
2
>>> -10 % -3
-1

单从上述解释,可能不是很清楚明白 %;具体说来,a % b 等价于 a- [ ( a // b ) * b ]

>>> 10 // 3
3
>>> 10 //-3
-4
>>> -10 // 3
-4
>>> -10 // -3
3
2、作为字符串操作符 %

%s —— 字符串 (采用 str() 的显示)
%r —— 字符串 (采用 repr() 的显示)
%c —— 单个字符
%b —— 二进制整数
%d —— 十进制整数
%i —— 十进制整数
%o —— 八进制整数
%x —— 十六进制整数
%e —— 指数 (基底写为 e)
%E —— 指数 (基底写为 E )
%f —— 浮点数
%F —— 浮点数,与上相同
%g —— 指数( e )或浮点数 (根据显示长度)
%G —— 指数( E )或浮点数 (根据显示长度)
%% —— 字符"%"

乘方符号: **

乘方运算符的优先级比求负高:

>>> -3**2
-9
>>> (-3)**2
9

常见异常类型

  1. UnboundLocalError : 试图访问一个还未设置的全局变量,基本是由于存在另一个同名的全局变量导致;
  2. KeyboardInterruptCtrl + C 被按下;
  3. IndentationError or unexpected indent : 语法错误,代码没有正确对齐等;
  4. AssertionErrorassert 语句失败;
  5. AttributeError : 试图访问一个对象没有的属性;
  6. SyntaxError : Python 代码语法逻辑出错,无法执行;
  7. ImportError : 无法引入模块或者包,基本是路径的问题;
  8. NameError : 使用一个还未赋予对象的变量;
  9. ValueError : 传入一个不被期望的值,即使类型正确;
  10. TypeError : 传入对象的类型与要求不符合;
  11. IndexError : 下标索引超出序列边界;
  12. KeyError : 试图访问字典中不存在的键;
  13. IOError : 输入输出异常,基本是无法打开文件。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值