变量和数据类型
内容:
- 变量
- 字符串
- 数字和运算符
- 数据类型转换
一、变量
1.定义:指在计算机编程中与关联的标识符配对的内存存储位置,在使用时含相关类型的值,该值可以修改。
当python变量被使用时,在内存里会产生两个动作:1.开辟新的内存地址;2.赋予指定的变量值
注意:变量被指定的同时,必须强制赋初始值,否则将报错
2.多个变量赋值
如:
>>> a=b=c=1 # 多个变量赋值 >>> print(a,b,c) # 打印变量 >>> 1 1 1 # 打印结果
3.变量值类型
包括:字符串(string)、数字(numeric)、元组(tuple)、列表(list)、字典(dictionary)
二、字符串
1.字符串使用
由单引号(' ')、双引号(" ")、三引号(''' ''')表示的任意字节字符组成,其中三引号中的字符串可以包含换行符、制表符和其他特殊字符等,如:
>>> text = '''你好,中国 中国万岁\n 繁荣、昌盛\t yeah!''' >>> print(text) 你好,中国 中国万岁 繁荣、昌盛 yeah!
2.字符串的基本操作
(1)字符串值读取
通过下标(index)如:
>>>text = 'we are family!' #变量赋值 >>>text[1] #获取下标为1的字符 e #得到结果
切片:
>>> text[3:6] #读取下标3-6的字符 >>> text[:6] #读取下标0-6的字符 >>> text[:] #读取整个字符串(感觉没什么意义) >>> text[::2] #从头到尾,步长为2(即每隔一个字符),读取对应字符 >>> text[-1] #读取右边第一个字符 >>> text[-3:-1] #从右往左,读取倒数第四、三、二个字符
注意:若注明了右下标,则右下标对应值不算入其中,如:
>>> name = '1234567' >>> name[1:4] '234'
2.字符串合并
字符串合并通过 “+” 号连接合并
3.字符串修改
字符串不能直接修改,是通过读取原有字符串进行合并来实现的,如:
>>> name = name + "hello" >>> print(name) 1234567hello
4.字符串删除
>>> del(name)
5.获取字符串长度
>>> len(name)
6.r/r符号
作用类似 三引号,如:
>>> print('hello \nnooi\thahh') hello nooi hahh >>> print(r'hello \nnooi\thahh') hello \nnooi\thahh
7.重复输出(*)
>>> print("hello" * 2)
8.格式字符串(%)
print("i'm %s. i'm %d years old" % ('gogo', 10))
三、数字和运算符
数字(digital)包括:整数(integer)、浮点数(float)、复数(complex)、布尔(boolean)
1.算术运算符
加(+)、减(-)、乘(*)、除(/)、取模(%)、幂(**)、取整(//)
优先级:括号 > 幂 > 乘(除)> 取模 ( 取整) > 加(减)
2.整数
由正整数、零和负整数构成,不包括小数、分数等,在python中整数的长度不受限制,但受内存的限制
3.浮点数
在python中,浮点数就是带小数点的数,浮点数不一定是精确值,因为受内存限制,超过一定长度后,末尾取近似值,如:
>>> 10.0/3 3.3333333333333335
4.复数
>>> (2-3j).real 2.0 >>> (2-3j).imag -3.0
5.布尔
and、or、not
6.二进制
在python中用 0b 开始表示二进制(早期的python版本不支持0b开头的二进制数)。如:
>>> 0b110101 53
>>> bin(17) '0b10001'
7.二进制位运算符
运算符 | 中文名称 | 运算规则描述 |
& | 按位与运算符 |
a&b,参与运算的a,b,如果相应位数为1,则该位结果为1,否则为0 |
| | 按位或运算符 | a|b,只要对应二进制位一个为1,则结果为1,都为0时结果为0 |
^ | 按位异或运算符 | a^b,当对应的二进制位相异时,结果为1,相同时结果为0 |
~ | 按位翻转运算符 | ~a,将二进制位+1后乘以-1,a的按位翻转为:-(a+1) |
<< | 左移动运算符 | a<<x,将a的二进制位全部向左移x位,高位丢弃,地位补0 |
>> | 右移动运算符 | a>>x,将a的二进制位全部向右移x位,低位丢弃,高位补0 |
二进制位运算符表
>>> #示例如下:
>>> 0b110110001&0b00101010 32 >>> 0b110110001|0b00101010 443 >>> 0b110110001^0b00101010 411 >>> ~0b110110001 -434 >>> 0b110110001<<3 3464 >>> 0b110110001>>3 54
8.比较运算符
包括:等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)
9.优先级
算术运算符(位运算符) > 比较运算符 > 逻辑运算符
四、数据类型转换
>>> int(15.1) #浮点数 > 整数 15 >>> int('20') #字符串 > 整数 20 >>> float(2) #整数 > 浮点数 2.0 >>> float('23') #字符串 > 浮点数 23.0 >>> complex(1,3) #转复数 (1+3j) >>> complex(2) #整数 > 复数 (2+0j) >>> complex('4') #字符串 > 复数 (4+0j) >>> str(4+2j) #复数 > 字符串 '(4+2j)' >>> bin(30) #整数 > 二进制数 '0b11110' >>> oct(16) #整数 > 八进制数 '0o20' >>> hex(55) #整数 > 十六进制数 '0x37' >>> chr(48) #整数 > ascll码 '0' >>> ord('b') #ascll码 > 整数 98