3.1 什么是代码 什么是写代码
代码是现实世界事物在计算机世界中的映射
写代码是将现实世界中的事物用计算机语言来描述
代码和写代码就像画家画画,摄影师拍照
如果我们需要在一个世界中描述另外一个世界里面的一些事物,我们就需要一些基本的元素和素材,在计算机世界的语言中,我们的素材就是基本数据类型,无论代码多复杂,都是由基本数据类型再加上我们的逻辑思维构成的。
3.2 数字:整形与浮点型
Number:数字类型 这是一个大的分类,它包括整数、小数等等
整数:int
浮点数:float
整数在其他语言中包括short、int、long
在Python中没有short,long之分,只用int
浮点数在其他语言包括单精度(float)和双精度(double),双精度比单精度表示的精度高
在Python中没有单精度、双精度之分,只有一种float,它就是其他语言中的double
利用type()查看其类型:
>>> type(1)
<class 'int'> //整形
>>> type(-1)
<class 'int'>
>>> type(1.1)
<class 'float'> //浮点型
>>> type(1.111111111111111111)
<class 'float'>
>>> type(1 + 0.1)
<class 'float'>
>>> type(1 + 1)
<class 'int'>
>>> type(1 + 1.0)
<class 'float'> // 2.0属于float类型
>>> type(1 * 1)
<class 'int'>
>>> type(1 * 1.0)
<class 'float'>
>>> type(2 / 2)
<class 'float'> //两个int用单斜杠“/”相除,结果是float类型
>>> type(2 // 2)
<class 'int'> //两个int用双斜杠“//”相除,结果是int类型
3.3 10、2、8、16进制
>>> 1 / 2
0.5 //用双斜杠相除,结果是int类型
>>> 1 // 2
0 //双斜杠是整除,只保留整数部分
10进制:满10进1
2进制:满2进1
8进制:满8进1
16进制:满16进1
3.4 各进制的表示与转换
进制的表示:
>>> 0b10
2 //Python中用0b表示2进制,回车默认转换10进制
>>> 0b11
3
>>> 0o10
8 //Python中用0o表示8进制
>>> 0o11
9
>>> 0x10
16 //Python中用0x表示16进制
>>> 0x1F
31
>>> 11
11 //Python中10进制就是10进制,没有特殊的符号
各进制间的转换:
其他进制向二进制转换用bin()
>>> bin(10)
'0b1010' //10进制转换成2进制
>>> bin(0o7)
'0b111' //8进制转换成2进制
>>> bin(0xE)
'0b1110' //16进制转换成2进制
其他进制向十进制转换用int()
>>> int(0b111)
7 //2进制转换成10进制
>>> int(0o77)
63 //8进制转换成10进制
其他进制向十六进制转换用hex()
>>> hex(888)
'0x378' //10进制转换成16进制
>>> hex(0o777)
'0x1ff' //8进制转换成16进制
其他进制向八进制转换用oct()
>>> oct(0b111)
'0o7' //2进制转换成8进制
>>> oct(0x777)
'0o3567' //16进制转换成8进制
3.5 数字:布尔类型与复数
bool:真(True)、假(False)
complex:复数
>>>True
True
>>>False
False
提示:True和False的首字母要大写
验证True和False是布尔类型
>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
验证布尔类型在数字大分类中:
>>>int(True)
1
>>>int(False)
0
反证:
>>>bool(1)
True
>>>bool(0)
False
是不是只有1表示True,0表示False?
答案:不是
验证:
1.数字情况
>>>bool(2)
True
>>>bool(2.2)
True
>>>bool(-1.1)
True
>>>bool(0)
False
结论:非0表示真,0表示假
2.字符串情况
>>>bool("abc")
True
>>>bool("")
False
3.列表情况
>>>bool([1,2,3])
True
>>>bool([])
False
4.其他情况
>>>bool({1,2,3})
True
>>>bool({})
False
结论:非空表示真,空表示假
特殊情况:
>>>bool(None)
False
复数表示:
>>> 36j
36j
3.6 字符串:单引号与双引号
str:字符串
表示字符串的方法有单引号、双引号、三引号
>>> 'hello world'
'hello world' //单引号
>>> "hello world"
'hello world' //双引号
类型的区分
‘1’≠1
验证:
>>> type(1)
<class 'int'> //1是int
>>> type('1')
<class 'str'> //'1'是str
python中只能用英文的符号
字符串为什么有单引号、双引号的表示方法?
因为引号表示字符串时必须要成对出现,而有的字符串中含有单引号或者双引号
例如:
>>>"let's go"
"let's go"
>>>'let"s go'
"let"s go" //两个单引号中间加上双引号是没有问题的
若都是单引号:
如果文字中含有单引号,而你又想用单引号表示字符串,就用转义字符吧~
>>>'let\'s go'
"let's go" //反斜杠 \ 为转义字符
PS:此处不推荐用转义字符, 因为麻烦且不美观~
3.7 多行字符串
python建议每行最多展示79个字符,可用三引号换行,三个单引号与三个双引号皆可
>>> '''hello world
hello world
hello world
'''
'hello world\nhello world\nhello world\n' // \n为回车
>>> """hello world\n hello world"""
'hello world\n hello world'
用print()函数能够看到转义字符转译之后的格式:
>>> print( """hello world\nhello world""")
hello world
hello world
>>> """hello
world"""
'hello\nworld'
>>> 'hello\
world' //加上反斜杠进行换行(单引号/双引号的换行方式)
'helloworld'
3.8 转义字符
转义字符:是一种特殊的字符,是无法“看见“的字符或与语言本身语法有冲突的字符
\n 换行
’ 单引号
\t 横向制表符(八个空格)
\n 换行,光标在下一行开头
\r 换行,光标在上一行开头
不是同一个概念
>>> print('hello \\n world')
hello \n world
>>> print('c:\\north\\west')
c:\north\west
3.9 原始字符串
字符串前面加上r或者R变为原始字符串,所见即所得
>>> print(r'c:\north\west')
c:\north\west
3.10 字符串运算一
拼接:+
>>> "hello" + "world"
'helloworld'
重复:*
>>> "hello" * 3
'hellohellohello' //只能和数字相乘
截取任意字符:[int]
>>> "hello world"[0]
'h' //下标序号从0开始
>>> "hello world"[3]
'l'
>>> "hello world"[-1]
'd' //正数代表获取字符序号,负数代表从末尾数n次得到的字符
>>> "hello world"[-3]
'r'
3.11 字符串运算二
截取一组字符:[起点:终点的后一位]
>>> "hello world"[0:5]
'hello'
>>> "hello world"[0:-1]
'hello worl' //负数表示步长,步长就是一个长度,表示从字符串的末尾往前数1个字符~
>>> "hello world"[2:-3]
'llo wo'
3.12 字符串运算三
输入数字大于其最大值则定义为其最大值
>>> "hello world"[6:30]
'world'
用两种方式截取"hello world"中的“world"
用正数截取:
>>> "hello world"[6:11]
'world'
用负数截取:
>>> "hello world"[6:]
'world' //从第6个字符截取到末尾
[int:]代表着截取到最后:
>>> "hello world"[6:]
'world'
[:int]代表着从开始开始截取:
>>> "hello world"[:-5]
'hello '
[负数:]代表从倒数位开始截取到最后:
>>> "hello world"[-4:]
'orld'