注意:所用的python环境为3.7.4,想要运行代码最好是3.X的
day2-进制和运算符
一.进制转换
计算机只能存储和处理二进制数据。int类型 - 包含所有的整数,整数可以表示为十进制,二进制,八进制和十六进制
1.十进制
a.基数: 0,1,2,3,4,5,6,7,8,9
b.进位: 逢10进1
c.位权: 123(10) = 100+20+3 = 110^2 + 210^1 + 310^0 = 123(10) (10^x)
d.表示方式: 直接写
print(100)
e.转换: 直接打印
print(100)
2.二进制
a.基数: 0,1
b.进位: 逢2进1
c.位权:111(2) = 12^2 + 12^1 + 12^0 = 7(10)
d.表示方式: 在二进制数前加前缀0b/0B
print( 0b1011,0B110)
e.转换: bin()
print('转2进制:', bin(200), bin(0o56), bin(0xaf))
3.八进制
a.基数: 0, 1, 2, 3, 4, 5, 6, 7
b.进位: 逢8进1
c.位权:111(8) = 18^2 + 18^1 + 18^0 = 73(10)
d.表示方式: 在八进制数前加前缀0o/0O
print( 0o67)
e.转换: oct()
print('转8进制:', oct(200), oct(0b110111), oct(0x1f))
4.十六进制
a.基数:0~9, a/A(10), b/B(11), c/C(12), d/D(13), e/E(14), f/F(15)
b.进位: 逢16进1
c.位权:111(16) = 16^2 + 16^1 + 16^0 = 256+16+1 = 273(10),
1f(16) == 16^1 + 15 = 31(10)
d.表示方式: 在16进制数前加前缀0x/0X
print( 0x34,0x2f)
e.转换: hex()
print('转16进制', hex(200), hex(0b1110110110101))
二.python基础语法
1.注释
注释是代码中对代码进行解释和说明的文本内容;不会影响程序的功能和执行。
(1)单行注释:在一行文字的前面加# (快捷键: ctr+/)
#注释内容(单行)
(2)多行注释: 将注释内容写在三个双引号或者三个单引号里面(但是一般使用是三个双引号)
"""
多行注释1
多行注释2
...
"""
2.语句
(1)一条语句占一行,语句结束后不用加分号。
(2)如果一行要显示多条语句,语句之间必须用分号隔开.
(3)如果如果一行要显示多条语句,语句之间必须用分号隔开一条语句很长,需要多行显示的时候,可以在语句中加\然后再换行(注意:\不能破坏数据)
str1 = 'abc'
num2 = 1829839284 + num\
* 34344 - 3798798\
+ 809839\
/ 273982789 ** 1\
- (2378 - 23989) + (29 - 0)
print(num2)
3.缩进
(1)python中一行代码的开头不能随便加缩进(空格或者制表符)
num1 = 100
num2 = 200
num3 = 300
num4 = 400
(2)python语法要求必须有缩进的位置一定要加缩进
if num > 10:
print(num)
4.标识符
标识符是用来命名用的。一般是给变量命名、函数命名或者类命名...
标识符规则: 所有标识符都必须是由字母、数字和下划线组成;数字不能开头。
注意: python2.x以后,标识符中可以出现中文、日语韩语等符号;但是实际开发的时候不建议使用
abc = 100
abc123 = 200
abc_123 = 300
酷睿 = 10
5.关键字(保留字)
关键字就是python中有特殊功能和特殊意义的标识符。
可以通过keyword查看关键字
import keyword
print(keyword.kwlist)
6.常见数据类型和数据
(1)数字数据: 整型(int) 10, 89, -10 浮点型(float) 12.9, 23.0, -12.0, 0.23
print(200)
print(20.66)
(2)字符串(str):用双引号或者单引号将文本数据引起来, "中国",'四川省成都市','1530022392'
print('abc')
print("中国四川省成都市")
(3)布尔(bool): 只有True和False两个值; True代表真/肯定, False代表假/否定
(4)列表(list)、元祖(tuple)、集合(set)、字典(dict)、函数(function)等...
(5)类型转换: 类型名(数据) -> 将括号中的数据转换成指定的类型并返回
print(int(2.233))
print(float(100))
7.print和input
(1)print函数 - 输出函数,在控制台打印print后面括号中的内容的结果
(2)input函数: 获取从控制台输入的内容(输入回车的时候输入就完成)
input(提示信息)
注意: 不管从键盘上输入的内容是什么,input返回的结果的类型都是字符串类型
value = input('请输入年龄:')
print(value, type(value))
三.原码,反码和补码
计算机存数据的时候,只能存数字,而且存的是数字的二进制的补码
计算机数据单位的大小:
位(bit)
1字节(byte) = 8bit
1kb = 1024byte
1M = 1024kb
1G = 1024M
1T = 1024G
注意: 正数的原码、反码和补码一样
1.原码
原码 = 符号位(0表示正,1表示负)+真值(数字转换成二进制的值)
10 -> 1010(真值) -> 1010
10的原码: 00000000 00000000 00000000 00001010
-10的原码: 10000000 00000000 00000000 00001010
2.反码
负数的反码: 符号位不变,其他位取反(0变1,1变0)
10 -> 1010(真值) -> 1010
10的反码: 00000000 00000000 00000000 00001010
-10的反码: 11111111 11111111 11111111 11110101
2.补码
负数的补码: 反码加1
10 -> 1010(真值) -> 1010
10的补码: 00000000 00000000 00000000 00001010
-10的补码: 11111111 11111111 11111111 11110110
举例:
2 + 3 == 5
2的原码: 00000010
3的原码: 00000011
2+3 = 00000010+0000011 = 00000101 = 5
2 + (- 3) == -1
2的原码: 00000010
-3的原码: 10000011 ->(反码)11111100->(补码)11111101
2-3 = 00000010 + 11111101 = 11111111(补)->(反)11111110->(原)10000001 = -1(用补码算)
2-3 = 00000010 + 10000011 = 10000101 = -5 (用原码算)
计算机负数采用补码的原因: 计算器没有减法器, 负数采用原码进行加法运算的时候结果不对,采用补码结果才对。计算机在进行负数运算的时候,会自动将负数由原码变为
反码,再变为补码进行运算,再将最后结果由补码转为原码。
四.运算符
python支持的运算符: 数学运算符、比较运算符、逻辑运算符、位运算、赋值运算符
1.数学运算符
+(求和), -(求差), (求积), /(求商), %(求余), //(整除),*(幂运算)
(1)+, -, *, / 和数学中的+, -, ×, ÷的功能一模一样
print(10 + 20)
print(10 - 20)
print(10 * 20)
print(10 / 20)
(2)% - 求余数
a.判断一个数是否能被另外一个数整除
print(10 % 3) # 求10除以3的余数
b.判断一个数的奇偶性: 让数字对2取余,看结果是0还是1
print(23 % 2, 101 % 2, 109 % 2)
print(230 % 2, 1012 % 2, 1096 % 2)
c.获取一个数的最后几位数
num = 123
print(num % 10) # 取一个数的个位数
print(num % 100)
(3)// - 求商,取商的整数部分(整除)
num = 123
print(num//100) # 1
print(num % 10) # 3
print(num // 10 % 10) # 2
print(num % 100 // 10) # 2
(4) ** - 求次方值
print(2 ** 3) # x ** y - 求x的y次方
print(16 ** 0.5) # 4.0
print(8 ** (1/3)) # 2.0
2.比较运算符
比较运算符: >, <, >=, <=, ==, !=
所有比较运算符的结果都是布尔值(不是True就是False)
(1)>, <, >=, <=和数学中相应的比较运算符一样
print(100 > 10) # True
print(100 < 10) # False
print(100 >= 100) # True
print(100 <= 100) # True
(2)==(判断是否相等) / != (判断是否不相等)
print(100 == 100) # True
print(100 == 20 + 80) # True
print(100 != 100) # False
print(10 != 100) # True
注意: python中比较大小的时候可以像数学一样连写表示范围