python进制转化和数据类型

1、进制转化(常识性内容)
十进制
逢十进一 0123456789 10
二进制
逢二进一 01 10
二进制转化为十进制
1101 = 1*2^3 + 1*2^2 + 1*2^0 = 13
123 = 1*10^2 + 2*10^1 + 3*10^0
1110101 = 64+32+16+4+1 = 117
十进制转化为二进制
倒除法、辗转相除法
20 = 10100 = 16 + 4 = 20
10 0
5 0
2 1
1 0
0 1
78 = 1001110
八进制
逢八进一 01234567
八进制转化为十进制
563 = 5*8^2 + 6*8^1 + 3*8^0 = 371
十进制转化为八进制
156 = 234(8) = 2*64+24+4 = 156
二进制转化为八进制
001 100 111 = 147(8)
八进制转化为二进制
734(8) = 111011100
在代码中,八进制一般都以0o开头
十六进制
逢16进1 字母大小写都可以
0123456789abcdef
十进制转化为十六进制
132 = 84(16)
十六进制转化为十进制
1af = 1*16^2+10*16+15 = 431
二进制转化为十六进制
1100 1110 1101 = ced
十六进制转化为二进制
1b8 = 0001 1011 1000
再代码中,十六进制都以0x开头
2、原反补码(了解)
计算机存储的都是二进制,单位的换算
一个0或者一个1,把其称之为一位,英文名称为1bit(比特),简写为1b
计算机不是以位为单位的,是以字节(bytes)为单位的,简写为1B
1B = 8b
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB

以一个字节为例
    0000 0000 - 1111 1111   0 - 255   无符号表示法
计算机如何表示负数
    将最高位作为符号位   0代表正数   1代表负数
    一个字节为例  有符号    -128 - 127
计算机如何存储负数
    原码、反码、补码
    0000 0011   3
    1000 0011   -3  原码
    1111 1100   -3的反码
    1111 1101   -3的补码
    正数直接存储,原码、反码、补码都一样
    负数按照补码存储,反码是在原码的基础上,符号位不变,其它位按位取反,补码是在反码的基础上加一
    0000 0011
    1111 1101
    0000 0000
ascii表格
    计算机是老外发明的,计算机存储内容,计算机只能存二进制,abcdefg  ABCDEFG 这些东西怎么存?
    所以出现了ascii表,这个表格就是一些对应关系,就是a对应的二进制是什么?b对应的二进制是什么?
    常用的字符无非就那么几个,用一个有符号的一个字节就表示完了
        1B  -128-127  0-127
        a-z  97-122
        A-Z  65-90
        0-9  48-57
    二进制和ascii字符之间的相互转化
        ord()   显示某个ascii字符的二进制为多少
        chr()   将一个二进制转化为对应的ascii字符

3、数据类型
整型、浮点、布尔、空、字符串、列表、元组、集合、字典
整型:int 浮点:float 布尔:bool
空:None 字符串:str 列表:list
元组:tuple 集合:set 字典:dict
查看一个变量的数据类型:type()
整型:存放整数
浮点: 存放小数
Python是一门弱类型语言
c、java都是强类型语言
布尔类型
boolean, 阴阳、男女、对错、真假
真:True
假:False

None(null,nil,none)
空,什么也没有
字符串(重要)
字符串定义:在程序中,凡是用单引号或者双引号括起来的内容都称之为字符串,
单引号和双引号没有区别
【注】单引号里面不能再出现单引号,双引号里面不能出现双引号,单引号里面可以添加双引号,双引号里面可以添加单引号
多行字符串
如果一个字符串比较长,一行写不下怎么办
d = ‘昨天晚上,我一个人走在路上,\
突然间一个穿短裙的女孩像我奔跑过来,\
然后我说,怎么了,谁欺负你了,她色眯眯的看着我说,\
俺想和处一段,你看咋样’
e = ‘北国风光,千里冰封’ \
‘万里雪飘,望长城内外’ \
‘惟余莽莽,大河上下,顿失滔滔’
”’多行字符串”’
“”“多行字符串”“”
多行字符串中可以直接添加单引号和双引号
字符串长度
len(string)
不论英文还是中文,只计算字符的个数,如果是中文,一个汉字就是一个
字符串的转义
将有意义的特殊字符变的无意义
如果想让单引号字符串中出现单引号或者双引号字符串中出现双引号,可以使用 \ 进行转义
系统还有很多特殊的转义字符
\n : 换行符
\t : 制表符
如果字符串想出现 \n \t ,需要在前面加 \ 让其失去意义即可
path = r’C:\Users\ZBLi\Desktop\1803\day02’
字符串前面添加r,代表后面凡是有特殊意义的字符全部失去意义
字符串的+和*
+ : 拼接字符串,字符串只能和字符串相加
* : 字符串重复几次
字符串中字符的提取
格式 a[下标]
从左到右,下标从0开始,依次加1
从右到左,下标从-1开始,依次减1
【注】无论从左到右还是从右到左,下标都不能越界
字符串的切片(字符串的截取)
格式: a[起始下标:结束下标:步进值]
步进值可以先不写,默认为1
包含起始下标,不包含结束下标,是一个左闭右开的区间
a[0:3] 提取012
a[:3] 提取012
a[-3:] 提取最后三个字符
a[2:-2] 提取除了前两个和后两个的其它字符
a[:] 提取所有
a[-1:-4:-1] 倒着提取后3个
a[::-1] 字符串的逆序
字符串的特性
字符串是不可变的,不能改变字符串中的字符
字符串的格式化
格式化占位符
%s 给字符串占位置的
%d 给整型占位置的
%10d 总共10个位置,前面不够加空格
%010d 总共10个位置,前面不够加零
%f 给浮点占位置的
浮点默认保留6位小数
%.3f 保留3位小数
%10.3f 总共10个位置,前面不够加空格
%010.3f 总共10个位置,前面不够加零
%o 给八进制占位置的
%x 给十六进制占位置的

    format使用
    # string = '我叫{}, 我喜欢{}, 我的年龄为{}'.format('林俊杰', '田馥甄', 37)
    # string = '我叫{2}, 我喜欢{1}, 我的年龄为{0}'.format('林俊杰', '田馥甄', 37)
    # string = '我叫{name}, 我喜欢{like}, 我的年龄为{age}'.format(name='林俊杰',age=37, like='田馥甄')
print换行问题
    print('haha', end='')
    打印完毕之后,后面不加换行符,加空


列表
    定义
    lt = [元素1, 元素2, 元素3, xxx]
        元素可以是任何类型
    lt = []   空列表定义
    元素访问
        和字符串一样,注意下标不能越界
        列表中嵌套列表,访问方式如下
        lt[-1][1]
    元素修改
        列表是可变的
    列表的+和*
        + 列表只能和列表相加,就是里面的元素都组合到一起
        * 列表中的所有元素重复几次
    列表赋值
        [a, b, c, d] = [100, 200, 300, 400]
    列表切片
        切片和字符串的切片一模一样
        字符串切片完之后还是字符串
        列表切片完之后还是列表

猜你喜欢

转载自blog.csdn.net/zangshuge/article/details/81664610