目录
一、整型
二、进制转换
2.1 二进制
2.2 八进制
2.3 十六进制
2.4 十进制
2.5 练习
三、浮点数
3.1 float
3.2 Decimal
四、复数
五、字符串
5.1 转义字符
1、r
2、\
5.2 字符串切片取值
1、三部曲
2、字符串常用方法
五、Booleans
【哪些布尔值为假】
六、常量
一、整型
| Python2 | Python3 |
| 有整型int和长整型long | 只有整型int |
二、进制转换
2.1 二进制
以0b开头
二进制转换-bin,任意进制的数转换为2进制,接收一个int,返回一个str
>>> a = 10 >>> bin(a) '0b1010' >>> result = bin(a) >>> type(result)
2.2 八进制
以0o开头,只包含0-7
进制转换函数oct,返回str类型
>>> b = 0o11 >>> b 9 >>> oct(15) '0o17' >>> oct(16) '0o20' >>> type(oct(18))
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 "", line 1, in
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)
>>> 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)
>>>
五、字符串
是一个不可变序列
>>> a = "abcd" >>> a[2]'c' >>> a[2] = "x"Traceback (most recent call last): File "", line 1, in 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 "", line 1, in
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



