自己也是在摸打滚爬中在慢慢的学习python3这门语言,之前是java开发,到后来转向python的学习,因为python语言对于数据处理方面还是异常强大。学习语言,自己的心得还是要多实践,最好是先打好基础,然后自己尝试着拿来使用,变成自己的东西才是最重要的。话不多说,这个专题会把自己学习python3的笔记和心得分享给大家。与大家共勉。
进制10,2,8,16的表示:
0b 二进制 0b10
0o 八进制
0x 十六进制
注:是零而不是O
转换成2进制:
bin(10)
bin(0o)
bin(0x)
转换成10进制
int()
转换成16进制
hex()
转换成8进制
oct(0b111)
Number 数字有4个子类型:
1. 整数:int //对比其他变成语言:short int long
2. 浮点数:float //对比其他语言 :单精度(float)、双精度(double == )
可以使用type()函数来查看类型
type(1) #整型
type(-1) #整型
type(2/2) == float #除法运算
type(2//2) == int #整除运算
注:除法运算过程中一定要注意上面的示例,不然会导致类型出错
3. 布尔类型: bool :(True False)
4. 复数: complex
bool特殊栗子详解:
int(True)
int(False)
注:bool是数字类型的一种
bool(1)
bool(0)
注:因为是数字类型的一种,所以它规则是,非0表示真,0表示假
但是其实字符串也可以表示真假
bool('abc') #True
bool('') #False
规则:非空为True, 空为False
除了字符串,下面这些也可以表示真假
[1, 2, 3] #True
[] #False
{1, 2, 3} True
{} False
注:规则为非空为True , None 为空 False
复数的表示:
36j #复数
字符串类型为str
type('hello') #str
如何表示 :有单引号,双引号,三引号几种方式
'hello'
"hello"
'''
hello
'''
怎样判断要使用哪种方式:
1. 如果要输入单引号时 可以使用双引号
"let's go"
2. 或者单引号之间可以夹杂双引号
'he says "hello" !'
3. 或者可以直接使用转义字符
'let\'t go'
三引号:建议每行字符79个
'''
可以多行输入
多行
多行
'''
注意下面这个栗子:
输入一个格式,在显示的时候会表示这些格式\t \n等
使用print(''' ''')会执行字符串的转义字符
注:这是IDLE的一些特性,注意区分''' '''输出的不同
如果想在IDLE中实现换行操作:
hello\
world
注: 单引号和双引号的换行可以通过这样的机制进行,这样的好处是避免代码太长不便阅读
定义:特殊的字符
1)无法看到的字符 #回车 换行 制表符
2)语法冲突的符号
表示方式:
\t #制表符
\n #换行
\' # '
\r #回车
注意:\r回车 \n换行 不是同一个概念
一种特殊的格式:
print(r' ')
注:r'包含的字符串' 不是一个普通字符串,而是一个原始字符串
看到了吧,原始字符串可以使转义字符失效
r R 都可以表示原始字符串
注:r'let't go ' 是不可以的,因为里面包含的就不是一个字符串(中间被断开了)
字符串的运算
1. 合并和重复运算
"hello "+"world"
"hello" * 3
2. 取字符运算
"hello world"[0]
"hello world"[4] //序号
"hello world"[-1] //从末尾往前数,取倒数第一个
3. 取字符串片段
"hello world"[0:4] #取前四个字符
"hello world"[0:5] #到要截取的位置的下一个位置,即取前五个字符
注: 序号从0开始
从后到截取n个字符
步长 "hello world"[0:-1]
[6:] 截取到末尾
[:-4] 截取掉后4个
[-4:0] 取后4个元素
用来表示组的概念
[1,2,3,4,5,6]
列表[1,2,3,4,5,6] ,是list类型
注:其中的数字可以替换成各种类型,甚至还可以嵌套列表
[1,2,[1,2,3,4],4,5,6]
["","","",""][0]
["","","",""][1]
["","","",""][0:2] //取出的也是一个列表
["","","",""][-1:]
注:类似字符串操作
列表合并使用 +
列表*3 数字重复3次
没有减法操作
[[],[],[],[]] 分组
定义:表示组概念的元组
表示:
(1,2,3,4,5)
也可以存放不同的元素,类似List
对元组的操作:
(1,2,3,4,5)[0]
(1,2,3,4,5)[0:2]
(1,2,3) + (4,5,6)
(1,2,3)*3
和int str list一样,元组也有自己的标识:
tuple #元组
type((1,2,3))
特殊栗子:
type((1)) #int
type(('hello')) #str
注:这样表示元组的话,可能会与()运算进行冲突
所以为了解决冲突,()硬性规定为运算
规定:(1,) 表示一个元素的元组
() 表示一个空的元组
list不存在这样的问题,如
type([1]) #是一个list
序列:也称为组
str list tuple 都是序列
因为它们有共有的操作
'hello'[2]
[1,2,3,4][2]
(1,2,3,4)[2]
注:原因是每个元素都会分配一个序号和顺序
因此它们还有一些共有的操作:
切片 [0:3]
[-1:]
[0:8:2]
加 +
乘 *
一些基本的操作
1. 判断元素是否在序列中
3 in [1,2,3,4,5,6] #是一个bool类型的
3 not in [1,2,3,4,5,6]
2.判断序列的长度
len([1,2,3,4,5,6])
3.返回最大值、最小值
max([1,2,3,4,5,6])
min()
注:字符串间也有大小的操作
查看字符编码:
ord('d')
ord(' ')
特点:无序
表示:{元素, 元素}
type({1,2,3,4,5,6})
len()
1 in {1,2,3,4,5,6}
1 not in {1,2,3,4,5,6}
#剔除元素的操作 可以使用减法的操作
{1,2,3,4,5,6} - {1,2,3}
{1,2,3,4,5,6} & {3,4}
{1,2,3,4,5,6} | {3,4,7}
特殊栗子
type({}) #dict
注:因为空dict的表示方法也是{}, 所以为了避免冲突有了下面的定义
set() #定义空的集合
type(set()) #set
定义:类似生活中的字典,用key:value对的方式存储
表示:
{key1:value1,key2:value2...}
注:也是无序的,不是序列
访问方式:
{key1:value1,key2:value2...}['key']
需要注意的要点:
1. 字典里是不能有重复的key的,因为会被后面的覆盖掉
2. 字典的键(key)不一定只能有str,也能有int
int 和 str是不一样的key
3. value没有类型限制
但是key不可以是任意类型,必须是不可变的类型
所以列表不可以作为key,元组是可以的
空的字典可以直接使用{}表示
type({}) #dict
要点:
1. str和元组是不可变,属于不可变类型
2. 数字(number) 类型包含: int float bool complex(复数)
3. 组 序列list 集合set 字典dict