目录
一、整型
Python2 | Python3 |
有整型int和长整型long | 只有整型int |
二、进制转换
2.1 二进制
以0b开头
二进制转换-bin,任意进制的数转换为2进制,接收一个int,返回一个str
>>> a = 10
>>> bin(a)
'0b1010'
>>> result = bin(a)
>>> type(result)
<class 'str'>
2.2 八进制
以0o开头,只包含0-7
进制转换函数oct,返回str类型
>>> b = 0o11
>>> b
9
>>> oct(15)
'0o17'
>>> oct(16)
'0o20'
>>> type(oct(18))
<class 'str'>
2.3 十六进制
0x开头
类型转换函数hex ,接收一个int,返回一个str
>>> a
10
>>> hex(a)
'0xa'
>>> hex(16)
'0x10'
>>> hex(15)
'0xf'
2.4 十进制
>>> int(0x11)
17
>>> int(0b01)
1
>>> int('12')
12
>>> int('0x22')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '0x22'
2.5 练习
#小小加法计算器
num1 = int(input("please input num1:"))
num2 = int(input("please input num2:"))
print("the sum = ", num1 + num2)
#进制转换器
num = int(input("请输入一个十进制数: "))
print("二进制数为: ", bin(num))
print("八进制数为: ", oct(num))
print("十六进制数为: ", hex(num))
三、浮点数
3.1 float
不精确的
>>> i = 1
>>> i = i - 0.1
>>> i
0.9
>>> i = i - 0.1
>>> i
0.8
>>> i = i - 0.1
>>> i
0.7000000000000001
3.2 Decimal
是精确的
>>> from decimal import Decimal
>>> mydec = Decimal.from_float(12.22)
>>> mydec
Decimal('12.2200000000000006394884621840901672840118408203125')
>>> mydec = Decimal('12.22')
>>> mydec
Decimal('12.22')
四、复数
>>> a = 4+5j
>>> type(a)
<class 'complex'>
>>> dir(a)
['__abs__', '__add__', '__bool__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__int__', '__le__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__pos__', '__pow__', '__radd__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', 'conjugate', 'imag', 'real']
>>> a.real
4.0
>>> a.imag
5.0
>>> type(a.imag)
<class 'float'>
>>>
五、字符串
是一个不可变序列
>>> a = "abcd"
>>> a[2]'c'
>>> a[2] = "x"Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
5.1 转义字符
1、r
让转义字符不转义,作为原始字符串输出
>>> a = r"sanchuang tongle \n huanying nin"
>>> print(a)
sanchuang tongle \n huanying nin
>>> a = "sanchuang tongle \n huanying nin"
>>> print(a)
sanchuang tongle
huanying nin
2、\\
同在前加r
>>> a = "san \\n le"
>>> print(a)
san \n le
5.2 字符串切片取值
str[stand:end:step],step默认为1
1、三部曲
1.如果step为正,表示从左到右截取,如果step为负,表示从右到左截取
2.确认start和end的位置(start必须要小于end)
3.确认step的步长是多少
str1 = "abcdefghijk"
print("1: ", str1[2])
print("2: ", str1[1:]) #默认end是无穷,即从开始号到结尾都可输出
print("3: ", str1[1:3]) #区间:左闭右开,第三号取不到
print("4: ", str1[-1:])
print("5: ", str1[-3:-1])
print("6: ", str1[4:0:-1])
#执行结果
1: c
2: bcdefghijk
3: bc
4: k
5: ij
6: edcb
2、字符串常用方法
级联字符串:两个字符串相邻放着,他们会被python自动级联
>>> info = "cali," '18'
>>> info
'cali,18'
1、判断系列
返回值要么为True,要么为False
>>> "sbc 213".isalnum() #有空格
False
>>> "sbc213".isalnum()
True
#是不是以aa开头
>>> "aabb y".startswith("aa")
True
#是不是以y结尾
>>> "aabb y".endswith("y")
True
#从下标为5的开始,判断是否以y开头
"aabb y".startswith("y",5)
True
2、查找统计类
建议使用find
>>> 'fanyouyou'.index("ou")
4
>>> 'fanyouyou'.index("ou2")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> 'fanyouyou'.find("ou2")
-1
>>> 'fanyouyou'.find("ou")
4
3、转换类
msg = "i Am ok"
# upper 大写
print(msg.upper())
# lower 小写
print(msg.lower())
# 单词首字母大写
print(msg.title())
# 大小写互换
print(msg.swapcase())
# # 执行结果
I AM OK
i am ok
I Am Ok
I aM OK
4、切割
# 按冒号进行切割
msg = "root:x:0:0:root:/root:/bin/bash"
print(msg.split(":"))
5、拼接
==》加号拼接
==》join拼接
# 拼接 将列表中的字符串拼接在一起,用“#”拼接
print("#".join(msg_lst))
msg = "ab**5%ef"
msg_lst1 = msg.split("*")
msg_lst2 = ("#".join(msg_lst1))
msg_lst3 = msg_lst2.split("%")
print("#".join(msg_lst3))
6、替换
msg = "ab**5%ef"
print(msg.replace("*", "#"). replace("%", "#"))
7、去除首尾字符(默认是空白字符)
# 去除首尾字符(默认是空白字符)
msg = "# abc #sanchuang#"
print(msg.strip())
print(msg.strip("#"))
#替换
print(msg.replace("#", ''))
## 执行结果
# abc #sanchuang#
abc #sanchuang
abc sanchuang
8、填充(居中对齐,左对齐,右对齐)
# 填充(居中对齐,左对齐,右对齐)
msg = "欢迎光临"
print(msg.center(50, "*"))
print(msg.ljust(50, "*"))
print(msg.rjust(50, "*"))
# # 执行结果
***********************欢迎光临***********************
欢迎光临**********************************************
**********************************************欢迎光临
五、Booleans
booleans值是一个逻辑值,只有True和False(真和假)
True ==>1 False ==>0 可以参与计算
python3里:True False都是关键字 (python2里还不是关键字)
【哪些布尔值为假】
总共8个 ==> '',0,0.0,(),[],{},None,False
None是一个特殊的常量,表示一种特殊的数据类型(NoneType),什么都没有
六、常量
一旦初始化后不能修改的固定值
Python中没有常量,通常用大写(约定俗成,非强制)表示,如:PI=3.1415926