Python Day02
今天介绍了注释,常量,变量,运算符及运算,进制转换。
常量,变量
常量:
由于Python弱类型的原因,不像Java那样可以用finnal声明常量,一般约定成全大写起名即为常量.例如:NAME,并且可以修改(一般约定不修改)。
变量:
Python是弱类型,不像Java要用int float string 之类定义为什么类型,而是赋值为什么就是什么类型,例如:name=‘张三’(String字符型),age=18(int整形),b=1.1(Float浮点型),q=Falese =|| q=True(bool布尔型,并且F和T都要大写)。
变量命名规则:
格式:变量名 = 值
- 数字,字母,下划线
- 首字母不能是数字
- 不能使用关键字(mport keyword
print(keyword.kwlist)) - 严格区分大小写
- 见名知意{驼峰命名法getName,下划线命名法get_name(推荐)}
变量的类型(含注释):
str(字符型):符号:单引号,双引号,三引号,转义字符+r使用
int(整形):10,1
float(浮点型):1.1 1.25
bool(布尔型):True False
byte(字节型):b’内容’ : b1 = b’hello’ print(type(b1), b1)
# 单行注释
'''
多行注释:
'''
```python
number = 10
print(number,type(number))
name = 'zhangsan'
print(number, name, 90, 100, 66, 88)
flag = False
查看关键字
import keyword
‘’’
预定义的转义字符:
\n
\t
\r
’
"
\
print("‘123’"),print(’“123”’)
结合:r’内容’ raw 保留字符串的原有格式
‘’’
### 类型: python独有的类型, container : '容器'
list(列表): [ 1,3,5,7,9 ],[ 'a','b','c' 'a' ] .... **# <class 'list'> 可以有重复元素**
tuple(元组):(1,3,5,7,9), ( 'a','b','c','c' )... **# <class 'tuple'> 可以有重复元素**
set(集合):{1,3,5,7,9,1,3,5,7,9},{'a','b','c','a'} ... **# <class 'set'> 不允许有重复元素 输出{1,3,5,7,9}**
dict(字典): scores = {'zhangsan': 100, 'lisi': 94} # key : value ... # <class 'dict'>
## 运算符
```python
a = 10
b = 5
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a % b) # 余数 6%4 --》2
print(a ** b) # 10^5
**print(a // b) # 整除(取整数)**
s1 = 'abc'
s2 = 'hello'
print(s1 * 3) //输出3遍s1
print(s1 + s2) // 连接字符串 输出'abchello'
result = a + b
print(result) # 赋值符号
c = 100
d = 5
print(id(b), id(d)) **# id() 内置函数:id(变量名) 获取变量地址,返回的是一个整型值**
e = 0
e += 6 # e = e+6 先相加后赋值
关系运算符:
== , != , > , <, >=, <= , is
左边 运算符 右边 —》bool: True False
== : 比较的是内容 返回值是True | False
is: 比较的是地址 可以通过id(变量) 获取地址 返回值是True | False
逻辑运算符:
and or not
左边 运算符 右边 —》bool: True False
是False的情况有哪些?
0 ‘’ " None
a1 = 8
a2 = 8
print(a1 < a2)
print(a1 >= a2)
print(a1 == a2) # 恒等于的判断 True
print(a1 != a2) # False
b1 = 1000
b2 = 1000
print(b1 == b2) # == 比较的是内容(值)
print(b1 is b2) # 比较地址的
print('--' * 30)
a = 0
print(not a) # not False ---> True
a = 8
print(not a) # False
a = ''
print(not a) # True
a = None
print(not a) # True
a = '0'
print(not a) # False
print(5 + True) #6
print(5 > True) # True
and or
and: 与 只有两边同时为真结果才是True真
T and T —》T
T and F —》F
F and T —》F
F and F —》F
验证用户登录: 用户名 True and password True —> 登录成功
or: 或 只要有一边为True,结果即为True。
T or T —》T
T or F —》T
F or T —》T
F or F —》F
用户登录: (用户名and密码) or (手机号码and验证码) —> 登录成功
成员运算符: in not in
# 成员运算符: in not in
names = ['张鹏', '刘旺', '王宁', '孙杨']
print('孙杨' in names) # 判断一个元素是否则另一个‘容器’中,如果在True,否则False
print('刘丽' not in names) # 不在...里面
s1 = 'abcdef'
print('a' not in s1)
身份运算符: is is not
# 身份运算符: is not is 比较地址
```python
s1 = 'abc'
s2 = 'abc'
print(s1 == s2)
print(s1 is not s2) # False
三目运算符: if else
# 三目运算符: 格式: 结果1(条件成立的话True) if 条件 else 结果2(条件不成立False)
result = 5 + 6 if 5 > 6 else 5 - 6
print(result)
类型转换
number = input('输入整型数字:') 字符型
print(type(number)) # '5'
类型转换: **str ---> int**
number = int(number) 整形
print(8 < 5 and 5 == number) # &&
print(8 > 5 or 5 == number) # ||
进制:
位:二进制位
常用的进制:
二进制:0 1
八进制: 0~7
十进制: 0~9
十六进制: 0~9 a~f
10 十进制
字节:
0000 1 0 1 0 —》10
8 4 2 1
十进制与二进制转换:
89—>二进制
二进制—》十进制:
0000 0010
12^1 + 02^0 —> 2
计算机运算:
原码
反码
补码: 负数
负数的十进制—》二进制:
-3的二进制:
步骤:
- 找3的二进制码: 0000 0011
- 求第一步的反码: 1111 1100
- 反码加1: 1111 1101
二进制 —》十进制
首先看符号位(二进制第一位)
1 —》 负数
0 —》正数
1111 0000 ----》 -16
步骤:
- 补码: 1111 0000
- 反码: 1110 1111
- 正数: 0001 0000 —>-16
位运算:
a = 0b01001011
转十进制
int()
b = int(a)
print(b)
转八进制 0o 开头
c = oct(a)
print©
转十六进制 0x 开头
d = hex(a)
print(d)
e = 88 # 十进制
e = bin(e) # 二进制 0b开头 binary
**result = int(‘0b1001010’, base=2)**表示二进制转十进制
print(result)
**result = int(‘0o65’, base=8)**表示八进制转十进制
print(result)
位运算:
& | ~ ^ >> <<
异或: 相同为0(False),不同为1(True)
左移:m<<n m*2的n次方
右移:m>>n m/2的n次方
>> : 变小
56>>3 ---> 56//2的3次方 ---》7
127>>4 --> 127//16 ---> 7
<<: 变大
2<<3 : 16
2*8 =16
a = 2
b = 3
print(a & b)
print(a | b)
**print(~a) # 0000 0010 ---> 1111 1101 --->十进制: (步骤: 减1 ---》 1111 1100 --》取反: 0000 0011 ---》十进制:-3**
print(a ^ b)
print(a >> 1) # a右移1位 0000 0010 ---》
print(56 >> 3)
print(127 >> 4)
临界值
print(0 >> 2)怎么移动都是0
print(-1 >> 6)怎么移动都是-1
总结:
**常量: MAX = 100
变量:
-
格式: 变量名=值
-
变量起名: 命名规范 5条
-
值:类型
str int float bool bytes
list tuple set dict -
str: ‘’ “” 三引号 +
print(‘hello’ + ‘100’)**str与int转换: str() int()
s1 = ‘90’
int(s1) ----> int类型n = 88
str(n) —> ‘88’ str类型**
5. 运算符:
算术:
赋值:
关系:
逻辑:
位: 进制: 二,八,十,十六进制,
进制之间转换:
负数:补码 反码
系统: bin() int() oct() hex()
& | ~ ^ >> <<
成员: in not in**
身份: is is not
三目: if else