编译型语言与解释型语言的区别
编译型:一次性把所有的代码编译成机器能识别的二进制码 然后运行
代表语言:c c++
优点: 执行速度快
缺点: 开发速度慢,调试周期长
解释型:代码从上向下一行一行解释并运行
代表语言: python php
优点: 开发效率快 调试周期短
缺点: 执行速度相对较慢
*linux 操作系统默认支持python语言,可直接使用
转义字符:
\ + 某个字符
- 将有意义的字符变的无意义
- 将无意义的字符变的有意义
'''
\n , \r\n : 换行
\t : tab缩进(水平制表符)[一般来说,一个锁进是4个空格的距离
\r : 将后面的字符直接拉到当前行行首
'''
strvar = '我是这个世界上,\n最帅的男人'
strvar = '我是这个世界上,\r\n最帅的男人'
strvar = '我是这个世界上,\t最帅的男人'
strvar = '我是这个世界上,\r最帅的男人'
strvar = '我是这个\n世界上,\r最帅的男人'
print(strvar)
# 我是这个
# 最帅的男人
Python的数据类型:
-
Number (数字)
-
String (字符串)
-
List (列表)
-
Tuple(元组)
-
set (集合)
-
Dictionary (字典)
Python的六个标准数据类型中:
- 不可变数据 : Number String Tuple ;
- 可变数据 : List Dictionary Set
容器数据类型 :
- str list tuple set dict
Number (数字)
在Python 3里,只有一种整数类型 int,表示为长整型
int float bool complex
# a, b, c, d = 12 , 12.12 , True , 4+3j
print(a,b,c,d)
print(type(a),type(b),type(c),type(d)) # type() 查看数据类型
## int 整型 (正整数 0 负整数)
intvar = 123
print(intvar)
res = type(intvar) # type 获取值的类型
print(res)
res = id(intvar) # id 获取一个值的地址
print(res)
# 二进制整型
intvar = 0b1111
print(intvar)
print( type(intvar) )
print( id(intvar) )
#八进制整型
intvar = 0o125
print(intvar)
print( type(intvar) )
print( id(intvar) )
# 十六进制整型
intvar = 0x1010
var1 = 4112
print(intvar)
print(id(intvar), id(var1))
print( type(intvar) )
## float 浮点数
# 表达方法一
floatvar = 4.88
print(floatvar)
print( type(floatvar) )
# 表达方式2 科学计数法
floatvar = 6.7e4
print(floatvar)
print( type(floatvar) )
## bool 布尔型
#True 真的 False 假的 只有两个值
(3) complex 复数
"""
complex 实数 + 虚数
3+4j
3: 实数
4j: 虚数
j: 如果有一个数,他的平方等于-1,那么这个数就是j,表达的是高精度的类型;(科学家认为有)
"""
# 表达方式一
complexvar = 56-3j
complexvar = -3j
# 表达方式二 ( 语法 : complex(实数,虚数) )
complexvar = complex(56,-3)
print( complexvar )
print( type(complexvar) )
String (字符串)
# 被引号引起来的就是字符串 ''' """
# (1)单引号引起来的字符串
strvar = 'hello world !' # type(strvar)
# (2)双引号引起来的字符串
strvar = "hello world !"
# (3)三引号引起来的字符串 (支持换行的效果)
strvar = '''我感觉我走错了房间,
貌似python31的同学是'祖安'服务器请来的"救兵"!
'''
# (4)元字符串r"字符串"不转义字符,原形化输出字符串
strvar = r"E:\nython31\tay2"
print(strvar)
# (5) 格式化字符串
'''
语法: " 字符串"%(值1,值2,值3)
%d 整型占位符 (%2d:表示占两位 原字符串默认居右 ,%-2d 占两位 原字符串默认居左 )
%f 浮点型占位符 (%.2f 保留两位小数 存在四舍五入,)
%s 字符串占位符
***可以全部使用%s占位符进行取代 %d %f (小数还是原位输出)
例: print('Hello%s,你今天%s岁吗,你是不是%s'%('小明',20,2.499))
打印: Hello小明,你今天20岁吗,你是不是2.499
'''
print('Hello%s,你今天%d岁吗,你是不是%.2f'%('小明',20,2.499))
# Hello小明,你今天20岁吗,你是不是2.50
print('Hello%5s,你今天%5d岁吗,你是不是%5.2f'%('小明',20,2.499))
#Hello 小明,你今天 20岁吗,你是不是 2.50
List (列表) 可变性
- List(列表) 是 Python 中使用最频繁的数据类型。
- 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
- 列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
- 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
## 定义一个空列表
listvar = []
print(listvar,type(listvar))
## 定义一个普通列表
liatvar = [100,3.13,'helllo',1 + 2j]
## 列表的索引:
'''
索引值以 0 为开始值,-1 为从末尾的开始位置。
正向下标索引 0 1 2 3
liatvar = [100,3.13,'helllo',1 + 2j]
逆向下标索引 -4 -3 -2 -1
'''
## 获取列表当中的值 ( 变量[下标] )
'''
res = listvar[2]
res = listvar[-3]
print(res)
## 获取列表当中最后一个元素
# python特有
print(listvar[-1])
#通用写法
res = len(listvar) # len 获取容器类型数据的长度(元素的总个数)
print(res) # 5
res = listvar[res - 1]
print(res)
#简写
print(listvar[len(listvar) - 1])
'''
## 修改列表里面的元素
listvar[-3] = False
print(listvar)
tuple (元组) 不可修改
- 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
# 定义一个空元组
tuplevar = ()
# 定义一个普通元组
tuplevar = ('abcd',786,2.23,'wocao',520)
print(tuplevar(2)) # 2.23
# 修改元组中的元素?
tuplevar[0] = '1' # error
set (集合) 无序 自动去重
- 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
- 可以使用: 不可变数据(可哈希的数据类型): Number(int , float , bool ,complex) , str , tuple
- 不允许的类型: 可变数据(不可哈希的数据类型): list , set , dict
# 定义一个集合
setvar = {'花木兰','李信','关羽','裴擒虎'}
res = setvar[3] # error 集合的无序性 (不能获取其中的元素)
setvar[0] = "吉吉国王" # error 不能修改
# 自动去重
setvar = {'花木兰','花木兰','花木兰','李信','关羽','裴擒虎'}
print(setvar) # {'关羽', '裴擒虎', '花木兰', '李信'}
# 定义一个空集合
# 错误
setvar = {} # 定义出来的是字典
print(type(setvar)) # <class 'dict'>
# 正确
setvar = set()
print(type(setvar)) # <class 'set'>
Dictionary (字典)
- 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合
- 键(key) 必须使用不可变类型(可哈希的数据类型): Number(int , float , bool ,complex) , str , tuple )
- 不允许的类型: 可变数据(不可哈希的数据类型) : list , set , dict
#定义一个空字典
dictvar = {}
# 定义一个普通的字典 (dict = {'键':'值'})
dictvar = {'上单':'国服花木兰','打野':'裴擒虎','射手':'村服小鲁班'}
print(dictvar) # {'上单': '国服花木兰', '打野': '裴擒虎', '射手': '村服小鲁班'}
# 获取字典中的值
res = dictvar['上单']
print(res) # 国服花木兰
# 修改字典当中的值
dictvar['上单'] = '上单木兰无敌'
print(dictvar) # {'上单': '上单木兰无敌', '打野': '裴擒虎', '射手': '村服小鲁班'}