什么是代码:代码是现实世界事物在计算机世界中的映射
什么是写代码:写代码是将现实世界中的事物用计算机语言来描述
一、Number:数字
1.整数:int(只有这一种)
2.浮点数:float(python中没有单双精度之分)
其他语言:单精度(float),双精度(double)
其他语言:short、int、long
type()函数可以查看某个变量的类型
type(1)---->int type(1.0)---->float type(1+1) --->int type(1*1.0)--->float type(1*1) --->int type(1*1.0)--->float
type(2/2)--->float 注意python中两个整型相除的结果是float,如果想要得到整型需要写成 type(2//2)--->int
总结/与//的区别:/表示除法但是其结果会自动的转换成浮点类型
//表示取整 1//2=0
二进制的表示(括号中的为对应的十进制):0b10(2) 0b11(3) 0b(零b)
八进制的表示:0o10(8) 0o11(9) 0o(零欧)
十六进制的表示:0x10(16) 0x11(17) 0x(零x)
进制之间的转换:
1.bin()方法:将任意进制的数转换为二进制
>>> bin(10)
'0b1010'
>>> bin(0o7)
'0b111'
>>> bin(0xE)
'0b1110'
>>>
2.int()方法:将任意进制的数转换为十进制
>>> int(0b111)
7
>>> int(0xE)
14
>>> int(0o7)
7
>>>
3.hex()方法:将任意进制转换为十六进制
>>> hex(0o77)
'0x3f'
>>> hex(888)
'0x378'
>>> hex(0o777)
'0x1ff'
4.oct()方法:将任意进制转换为八进制
>>> oct(0b1010)
'0o12'
>>> oct(0xE)
'0o16'
2.bool布尔类型:表示真和假
True为真 False为假 (注意首字母大写否则报错)
>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
>>> type(true)
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
type(true)
NameError: name 'true' is not defined
>>> type(false)
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
type(false)
NameError: name 'false' is not defined
>>> int(True)
1
>>> int(False)
0
>>> bool(1)
True
>>> bool(0)
False
>>> bool(2)
True
>>> bool(2.0)
True
>>> bool(-1)
True
>>> bool(0)
此示例说明
(1)True转换为int类型为1,Fasle转换为int类型为0,同理可逆推。
(2)非0的数为bool真,为0的数为bool假
推广:
>>> bool('abc')
True
>>> bool('')
False
>>> bool([1,2,3])
True
>>> bool([])
False
>>> bool({1,1,1})
True
>>> bool({})
False
>>> bool(None)
False
(3)其他数据类型也可以向bool类型转换
(4)一般空为False
3.complex复数
>>> 36j
36j
二、str字符串
1.单引号、双引号、三引号
注意:1 与 '1'是不同的数据类型一定要区分开,单双引号一定是英文的字符,并且成对出现(引号表示字符串的时候)
>>> type(1)
<class 'int'>
>>> type('1')
<class 'str'>
为何要设置单双引号?
(引用了这位博主的文章https://blog.csdn.net/yafeil/article/details/74354904)
创建本身就包含引号的字符串,而不是使用转义符。
可以在双引号包裹的字符串中使用单引号,或者在单引号包裹的字符串中使用双引号
不推荐使用第三种方式,因为不太符合Python的优美简洁(写出来太难看)
>>> "Let's go"
"Let's go"
>>> 'Let"s go'
'Let"s go'
>>> 'Let\'s go'
"Let's go"
三引号('''or"""):
可以输入多行,三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如/n和/t都会被保留
>>> """
hello world
hello world
"""
'\nhello world\nhello world\n'
>>> '''hello world\nhello world\nhello world'''
'hello world\nhello world\nhello world'
如果想要用三引号使三引号包裹的转义字符起作用需要用print()函数(单双引号同理)
>>> print('''hello world\nhello world\nhello world''')
hello world
hello world
hello world
如果想要使单双引号也能换行输入需要用一个反斜杠\
>>> 'hello\
world'
'hello world'
>>> "hello\
world"
'hello world'
>>>
2.转义字符:特殊的字符
无法“看见”的字符
与本身语法有冲突的字符
\n 换行 \\ \
\' 单引号
\t 横向制表符
\r 回车
>>> print('hello \\n world')
hello \n world
实例:如果要输出文件的路径
>>> print('c:\\northwind\\northwest')
c:\northwind\northwest
3.原始字符串
实例:如果要输出文件的路径
>>> print('c:\\northwind\\northwest')
c:\northwind\northwest
>>> print(r'c:\northwind\northwest')
c:\northwind\northwest
第一种形式是一个普通的字符串,并且书写繁琐不美观
第二种形式不是一个普通字符串 ,而是一个原始字符串(所见即所得)
但是像Let’s go这种形式的可以用原始字符串吗?不可以,因为即使是原始字符串他也是一个字符串,引号要成对出现
>>> print(r'Let's go')
SyntaxError: invalid syntax
4.字符串的运算
+:将两个字符串拼接起来
>>> "hello"+"world"
'helloworld'
>>> "hello"+" "+"world"
'hello world'
>>> "hello "+"world"
'hello world'
*:将一个字符串重复n次
>>> "hello"*3
'hellohellohello'
>>> "hello "*3
'hello hello hello '
[n]:访问字符串中的任意字符(n为正整数和0)
>>> "hello world"[0]
'h'
>>> "hello world"[4]
'o'
>>> "hello world"[1]
'e'
>>> "hello world"[-1]
'd'
>>> "hello world"[-3]
'r'
字符串是从0开始的,[n]是从左往右数n次,[-n]从右往左数n次(注意此时的[-1]和[-0]取出的都是末尾的第一个字符)
: :截取一段字符
截取hello 为什么是[0:5]而不是[0:4]?因为python中规定,必须截取到末尾字符的下一位
>>> "hello world"[0:5]
'hello'
如果[0:-1]就是步长的意义
>>> "hello world"[0:-1]
'hello worl'
示例;截取“hello world”的world
>>> "hello world"[6:11]
'world'
>>> "hello world"[6:20]
'world'
>>> "hello world"[6:]
'world'
>>> "hello world"[-5:]
'world'
第二种形式虽然超出了字符串的长度,但是只会截取到字符串的末尾