2018-11-27 (Review-1)

一 (进制转换, 补码反码, 字符基础, 位运算)

1.进制的转换
二进制bin(整数)
八进制oct(整数)
十六进制hex(整数)

二进制 前面加 0b
八进制 前面加 0o
十六进制 前面加 0x

十进制转其他进制:
二进制: 不断除2取余数,直到除以商为0为止.从最后取得余数为最高位
八进制: 不断除8取余数...
16进制: 不断地除16取余数...

二进制转其他进制:
二进制转八进制:从左边取3位为8进制1位.不足则补0
二进制转十六进制:从左边取4位为16进制1位,不足则补0

例: 十进制数123
二进制数:1111 0011
八进制数: 173
十六进制数; 7b
例 : 11101101
8进制: 355
16进制:ED

print(0b1010)
print(0o753)  # 40+3+64*7
print(0x16)

反码 补码

  1. 正数的反码和补码就是原码
  2. 负数的反码就是符号位不变,其他位取反
    补码就是反码+1

位运算:

& 与: 两者都为1 结果为1
| 或: 两者有一者为1, 结果为1
~ 取反: 0-->1 1-->0 将每一位取反
^ 异或: 相异为1
<< 左移: 向左移动相应的位数,后面位数不够取0
m<

print(10<<2) # 10 * 4 = 40

二.字符的基础

首先,python中的字符采用的是Unicode编码.两个字节对一个字符
编码

print(ord('a')) # 得到字符对应的Unicode编码
print(chr(65))   # 得到unicode 编码对应的字符

1.字符串

str1 = r"i don't \n like cat"
print(str1) # 字符前面加上r/R 可以阻止转义字符转义
str1 = "duke is good"

print(str1[1])
print(str1[-1]) # 字符串+[下标] 可以相应的单个字符

2.字符的切片

注意: 从开始的下标开始,到结束下标前的所有的字符,默认步长为1.

str2 = "abcdefghj"
print(str2[0:5]) # 从下标0开始取到4的下标的字符,步长默认为1

print(str2*2) # *n 字符串重复n遍

3.字符的判断运算符

str3 = 'lllll'
str4 = '11111'
print(str3 == str4) # 判断是否相等
print(ord('1'), ord('l'))
print(str3>str4) # 比较的是第一个字符的编码值大小.
                    # 如果相同一直往后进行比较.

# 如果判断字符全为数字或者字母.可以使用比较运算.
print(str3 in str4)   # 判断字符串1是否在字符串2中. not in 则是不在

4.字符串中的内置函数

str11 = 'abcd153'
print(str11.capitalize())   # 将首字母大写
print(str11.rjust(8, '0'))  # 右对齐, 8位字符,不够则补0.
print(str11.ljust(10, '-'))
print(str11.center(15,'0')) # 中间对齐.其他部位补0
print(str11.count('a')) # 判断字符串str11中 a字符出现的次数
print(str11.endswith('53')) # 判断是否以字符'53'结尾
print(str11.startswith('a'))  # 判断是否以'a'开头
print(str11.find('15'))   #  返回'15'第一个字符的下标,没有就返回-1
print(str11.isnumeric())  # 判断是否只含有数字(中文数字也可以)
print(str11.istitle())
print(str11.join('153')) # 注意:是将str11插入到'153'每一个字符之间

你可能感兴趣的:(2018-11-27 (Review-1))