2. python 运算符/数据类型

1. Python 运算符
python 算数运算符
运算符
描述
示例
+
加法运算
a + b = 31
-
减法运算
a – b = -11
*
乘法运算
a * b = 210
/
除法运算
b / a = 2.1
%
模运算,取余数
b % a = 1
**
对运算符进行指数(幂)计算
a ** b,表示10的21次幂
//
地板除
操作数的除法,其结果是删除小数点后的商数。 但如果其中一个操作数为负数,则结果将被保留,即从零(向负无穷大)舍去
9//2 = 4 
9.0//2.0 = 4.0
-11//3 = -4
-11.0//3 = -4.0
算术运算符实例:

python 关系运算符
比较(关系)运算符比较它们两边的值,并确定它们之间的关系。它们也称为关系运算符。
假设变量 a 的值 10 ,变量 b 的值是 20
运算符
描述
示例
==
如果两个操作数的值相等,则条件为真。
(a == b)求值结果为 false
!=
如果两个操作数的值不相等,则条件为真。
(a != b)求值结果为 true
>
如果左操作数的值大于右操作数的值,则条件成为真。
(a > b)求值结果为 false
<
如果左操作数的值小于右操作数的值,则条件成为真。
(a < b)求值结果为 true
>=
如果左操作数的值大于或等于右操作数的值,则条件成为真。
(a >= b)求值结果为 false
<=
如果左操作数的值小于或等于右操作数的值,则条件成为真。
(a <= b)求值结果为 true
关系运算符实例:

python 赋值运算符
运算符
描述
示例
=
将右侧操作数的值分配给左侧操作数
c = a + b表示将a + b的值分配给c
+=
将右操作数相加到左操作数,并将结果分配给左操作数
c + = a等价于c = c + a
-=
从左操作数中减去右操作数,并将结果分配给左操作数
c -= a 等价于 c = c - a
*=
将右操作数与左操作数相乘,并将结果分配给左操作数
c *= a 等价于 c = c * a
/=
将左操作数除以右操作数,并将结果分配给左操作数
c /= a 等价于 c = c / a
%=
将左操作数除以右操作数的模数,并将结果分配给左操作数
c %= a 等价于 c = c % a
**=
执行指数(幂)计算,并将值分配给左操作数
c **= a 等价于 c = c ** a
//=
运算符执行地板除运算,并将值分配给左操作数
c //= a 等价于 c = c // a
赋值运算符实例:

python 逻辑运算符
假设变量 a 的值为 True ,变量 b 的值为 False ,那么
运算符
描述
示例
and
如果两个操作数都为真,则条件成立。
(a and b) 的结果为False
or
如果两个操作数中的任何一个非零,则条件成为真。
(a or b) 的结果为True
not
用于反转操作数的逻辑状态。
not(a and b) 的结果为True。
逻辑运算符实例:


python 运算符优先级
从上到下优先级递增,从左到右优先级递增
序号
运算符
描述
1
lambda
Lambda表达式
2
or
布尔“或”
3
and
布尔“与”
4
not x
布尔“非”
5
in,not in
成员测试
6
is,is not
同一性测试
7
<,<=,>,>=,!=,==
比较
8
|
按位或
9
^
按位异或
10
&
按位与
11
<<,>>
移位
12
+,-
加法与减法
13
*,/,%
乘法、除法与取余
14
+x,-x
正负号
15
~x
按位翻转
16
**
指数
17
x.attribute
属性参考
18
x[index]
下标
19
x[index:index]
寻址段
20
f(arguments...)
函数调用
21
(experession,...)
绑定或元组显示
22
[expression,...]
列表显示
23
{key:datum,...}
字典显示
24
'expression,...'
字符串转换
总结
运算符与他们的用法:

2. Python 数据类型
整型
编程过程中,经常会要和一些数字打交道,最多有时候求一下他们的绝对值,如下所示:
a = 100
b = -20
print (a)
print (b.__abs__()) ##这种以下划线开头的很少用
print (abs(a) + abs(b)) ##这种函数形式经常用
而在我们获得变量的时候,特别是整形和字符串之间,最容易发生字符串和整型变量之间类型转化的问题

整型在运算的时候,经常会遇到小数点精度的问题,比如:a = 1/2,那 a 等于多少呢?0.5 吗?
不对,a = 0,python的选择是去一法,不管小数点后面是什么,全部舍弃
如果想要保留小数点后面几位,就涉及到浮点数。

浮点型
round()内置方法
用round(float)只包含数字的时候,默认保留1位小数,采用四舍五入的方式。
举例:
round(2.5)
3.0

round(1.5)
2.0
当 round(float,ndigits),包含数字和精度的时候,float代表数字,ndigits代表需要保留的精度。
一般情况也是四舍五入,但是碰到 .5 这种情况的时候,如果要取舍的位数前的小数是偶数,
则直接舍弃,如果是奇数,则向上进一。
总的来说,小数点精度最后一位只能是偶数。
举例:
roude(2.555, 2) #奇数
2.56

roude(2.545, 2) #偶数
2.54

6和4 都是小数点精度最后一位,都是偶数。

总结:先进行四舍五入的运算,如果小数点精度的最后一位是偶数,符合条件;
如果小数点精度的最后一位四舍五入完以后为奇数,则舍弃原小数点精度以后的所有数字,
及保证小数点精度的最后一位必须为偶数。

布尔型
布尔型就两个值,一个是False,一个是True
一般在赋值的时候,是一个最终判断的一个返回值,然后再拿这个值进行操作。


字符串
字符串是我们经常用到的,我们用 ' '," ",""" """,都可以定义字符串,
但是最终(print)输出的结果都默认为 ' '(单引号)的字符串。[python默认]
所以,最规范的方法是定义字符串的时候用' '(单引号)

对于字符串,有很多操作字符串的方法
a = 'sssss'
print (dir(a))
函数 dir() 就是用来查看python数据类型都有哪些方法,打印出来很多方法,但我们
只用最常用的方法,以后用到其他的方法,我们可以再通过这个方法查询。

字符串最常用的方法
字符串默认是有下标的,默认从[0]开始,如下所示:
s = 'hello'
print (s[0], s[1], s[2])


find 方法:
查找字符串,如果找到返回字符串首字母匹配的下标信息,如果不匹配,则返回-1
举例:
a = 'asdf 1234ccasdfasdffkjlaklsjljlksjf'
print (a.find('1234'))
得到4,4是字符串'1'的下标
如果不存在呢?
print (a.find('q1234'))
得到 -1
补充:find 里还有rfind方法,从右侧开始查找

replace 方法:
a = 'asdf 1234ccasdfasdffkjlaklsjljlksjf'
print (a.replace('1234', '4321'))
得到:'asdf 4321ccasdfasdffkjlaklsjljlksjf'


split 方法:
a = 'asdf 1234ccasdfasdffkjlaklsjljlksjf'
print (a.split('d'))
将字符串,以字符串'a'为分隔符,切割成列表。
['as', 'f 1234ccas', 'fas', 'ffkjlaklsjljlksjf']

join 方法:
将上例生成的列表用'hello'连接
c = ['as', 'f 1234ccas', 'fas', 'ffkjlaklsjljlksjf']
print ('hello' .join(c))
得到 : 'ashellof 1234ccashellofashelloffkjlaklsjljlksjf'

strip 方法:
b = ' asdf kjhgfd weryui mnbvc '
(左右两边有空格,这个情况工作中经常会遇到,需要去掉两头空格后,在提取字符串的情况)
想要把左边的空格去掉
print (b.strip())
得到 'asdf kjhgfd weryui mnbvc'
另外:
print (b.lstrip()) 去掉字符串最左边的空格
print (b.rstrip()) 去掉字符串最右边的空格

这样更能使编写代码更规范,如果不需要空格,我会把字符串取出来,把空格移除
养成习惯,以后会避免很多问题。

format 方法:
name = 'lounan'
print ('hello' + name)
print ('hello %s' % name ) #%s代表的是字符串 %d 代表整形 %f 代表浮点型
print ('hello {0}'.format(name))
以上三种执行起来,format方法 的执行效率是最高的

format 拓展(进阶用法,小数,对齐,多种格式):
(1)< (或默认不写)左对齐、> 右对齐、^ 中间对齐、= 在小数点后进行补齐(只用于数字)
(2)取位数 “{:4s}”、"{:.2f}" 等
举例:
>>> print('{} and {}'.format('hello','world'))         # 默认左对齐
hello and world
>>> print('{:10s} and {:>10s}'.format('hello','world'))         # 取10位左对齐,取10位右对齐
hello and world
>>> print('{:^10s} and {:^10s}'.format('hello','world')) # 取10位中间对齐
hello and world
>>> print('{} is {:.2f}'.format(1.123,1.123))         # 取2位小数
1.123 is 1.12
>>> print('{0} is {0:>10.2f}'.format(1.123))         # 取2位小数,右对齐,取10位
1.123 is 1.12
>>> print ("{: =10.3f}, {}, {}".format(1.334543535345, 1.2342342, 2333))
1.335, 1.2342342, 2333
>>> print ("{:10.3f}, {}, {}".format(1.334543535345, 1.2342342, 2333))
1.335, 1.2342342, 2333

多格式:
'b' - 二进制。将数字以2为基数进行输出。
'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。
'd' - 十进制整数。将数字以10为基数进行输出。
'o' - 八进制。将数字以8为基数进行输出。
'x' - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。
'g' - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
'n' - 数字。当值为整数时和'd'相同,值为浮点数时和'g'相同。不同的是它会根据区域设置插入数字分隔符。
'%' - 百分数。将数值乘以100然后以fixed-point('f')格式打印,值后面会有一个百分号。

举例:
>>> print('{0:b}'.format(3))
11
>>> print('{:c}'.format(20))

>>> print('{:d}'.format(20))
20
>>> print('{:o}'.format(20))
24
>>> print('{:x}'.format(20))
14
>>> print('{:e}'.format(20))
2.000000e+01
>>> print('{:g}'.format(20.1))
20.1
>>> print('{:f}'.format(20))
20.000000
>>> print('{:n}'.format(20))
20
>>> print('{:%}'.format(20))
2000.000000%


多个变量,使用format方法
变量:
name = 'lounan'
age = '20'

输出样式1:
print ('hello {0}, my age is:{1}'.format(name, age))
输出样式2:
print ('hello {name}, my age is:{age}'.format(name = 'along', age = '30')) ##更换了原变量的值


字符串的注释:
在python中用 # 注释,#号后面的内容都会被解释器忽略
一般都会在 "预设头文字" 后面添加(""" """)字符串来解释项目或者文件作用或解释说明等。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2018/03/30 22:52
# @Author : nan
# @File : aa.py
"""This is test file!"""
# test file



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值