一、Python的数据类型
主要分为了数字型和非数字型两个大类,其中数字型又包含整形(int)、浮点型(float)、布尔型(bool),而非数字分为字符串(str)、列表(list)、元组(tuple)、字典(dictionary)。非数字类型里除了字符串,其他类型又都属于数据集合,可以存放多个数据
二、Python数字型数据介绍
1、整型(int):正整数和负整数,不带小数点。比如100、-1,整型数据可参与运算。只有一个bit_length()方法。
num1 = 100
print ((type)num1)
num2 = -15
print ((type)num2)
2、浮点型(float):有小数点的数据,如3.1415
num1 = 3.14
print ((type)num2) #显示为float类型
3、布尔型(bool):特殊的整型,True为1,False为0,通常在程序中用来做判断。没有内置函数。
三、Python非数字型数据介绍
1、字符串型(str):用引号括起来的都属于字符串,单引号双引号都可以,如"你好"、"linuxe"、'3'。数字可以是字符串类型,但不可参与运算;通过注释的方式可以将文本格式化输出,类似Shell中的EOF;如果想打印引号本身使用反斜线\进行转义;字符串支持+和*进行运算,只不过+的作用是连接2个字符串,而*是字符串的次数。字符串常用方法可以参考《Python常用方法——字符串常用方法》。
print(19+"1") #会报错
name = """wo shi tanglu
wo shi tanglu
woshi tanglu
"""
2、列表list:存放了一组有序、可变的数据集合,用中括号表示列表,每个元素用逗号分割,列表支持多种数据与多层嵌套。列表
list01 = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
# 下标 0 1 2 3 4 5 6 7 8 9
# 反序 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
print(list01[0]) # 访问第一个元素
print(list01[-1]) # 访问最后一个元素
print(list01[3:])
print(list01[:3]) # 从第一个元素到下标为3-1的元素
print(list01[3:8]) # 从第3个元素开始到下标为8-1的元素结束
print(list01[-3:]) # 每次递增1个
print(list01[:-3]) # 从第一个元素开始到-3-1的元素结束
print(list01[-3:-8]) # 每次递增1个
print(list01[-3:-8:-1]) #从-3开始到-8-(-1)=-8+1=-7
name = ["tanglu","tom","jerry"]
print (name[0]) #输出结果是tanglu
print (name[-1]) #-1代表最后一个元素,输出jerry
name[0] = 'Tanglu' #修改列表中第一个元素
del name[1] #删除列表中索引为1的元素
#列表嵌套与元素获取,如果使用下标并带有冒号,那么获取的数据依然是列表的形式,否则为字符串
test_list = ["周润发", "周星驰", "周笔畅", "周公瑾", ["九品芝麻官", ["吴孟达", "alex", "林雪"],"算死草", "赌侠", "赌圣", "整蛊专家"]]
print (test_list[4][1][0]) #结果是吴孟达
3、元组tuple:一种有序的集合,但是无法对其中的元素做修改,可以看作是只读的列表。用小括号表示元组,如果只有一个元素的话需要加逗号来表示。如果已经明确数据不会发生变化的话,推荐使用元组类型的数据。
tuple = (1,2,3,'linuxe')
tuple2 = (1,) #只有一个元素的元组结尾需要加逗号
tuple3=tuple(list1) #使用tuple()将列表转为元组
4、字典dict/哈希表:无序,大量的关系型数据存放在字典中,查找速度快于列表,字典以键值形式存储数据,查找或者添加元素时使用的是key,而不是下标,这有点像Redis中的Hash数据
info = {'name':'tanglu','age':'18'} #如果键已存在会更新,不存在则创建
info["id"] = "1" #添加或者修改一个元素
print (info['name']) #输出tanglu
print (info.keys()) #使用key函数获取字典中所有的key
print (info.values()) #values函数获取所有值
print (info.items()) #items函数获取所有键值
#示例,结合items()遍历字典中并传送给2个变量
for key,value in dict1.items():
if value >90:
print (key)
5、集合:和字典定义方式一样使用花括号,但是不用写value。元素不能重复,如果有重复元素会被删掉。可以用他来快速将列表进行去重
s1=set() #定义空集合只能使用set()
s2={1,3,7} #创建集合
s2.add('9') #为集合添加数据
s2.update(t1) #为集合添加数据,数据从t1这个列表获取,并且会自动拆包,如果用add的话少了拆的步骤
6、使用type()函数查看数据类型:
a = 3
print (type(a))
四、Python的数学运算与逻辑运算。需要留意各种运算符的优先级,算数运算符>比较运算符>等于运算符>逻辑运算符
#算术运算符:加减乘除取余取模
print (3+5)
print (5-1)
print (3*4)
print (12/4)
print (10//3) #商数取整,这里就是3
print (13%4) #取余数.这里就是1
#赋值运算符:+=、-=等,会把结果赋值给变量
b=2
a=3
b+=a #结果为5,等值于b=b+a
#比较运算符:==、!=、>、=、<=,返回结果为布尔值
#逻辑运算符:and、or、not,运算顺序优先级是( ) > not > and > or
print (2>3 and 4<6) #and需要所有条件为真,所以这里输出为False
print (10<6 or 9>7 or 5>9) #有一个条件为真即为真,所以这里输出True
#成员运算符:in、not in,判断一个元素是否在一组列表中,返回结果为布尔值
a=1
a in [1,2,3,4,5]
#身份运算符:is、is not,和==不同,它比较的是内存空间中的地址是否相等
五、int数据类型的常用方法
1、整型数据常用方法:max、min、abs
print(max(2,4,6,8,10))
print(min(2,4,6,8,10))
2、浮点型数据常用方法:round、math.modf(分别显示小数位和整数位)
num = 3.1415926
print(round(num,2)) #四舍五入保留小数点后2位
六、数据类型的转换
在引用变量时经常会因为数据类型不同出现各种错误,如字符串变量无法做运算、数字类型变量无法直接输出。所以在明确是需要做什么操作之后,可以将变量的数据类型进行转换
print (10+int("20")) #将字符串转换为整型
print (float("123.456")+11.22) #将字符串转换为浮点数
print (str(10)+"20") #将数字转换为字符串
num1 = 10 num2 = '20'
print(num1+int(num2))
name = 'tanglu' age = 18
print('hello:'+name+',you are:'+str(age))
七、基本格式化输出。
1、使用占位符进行格式化输出
使用占位符%加上特定字母可以进行简单格式化输出,常用于在字符串中引用变量:
%s:字符串
%d:数字
name = 'tanglu'
age = 18
print ("我叫%s,我今年%d" %(name,age))
%10s:字符串右对齐,占位符10位
%-10s:字符串左对齐,占位符10位
%.2s:截取2位字符串
%f:浮点数,默认保留小数点后6位数字,可以使用%.3f这样的形式来保留3位小数
num1 = 100
num2 = 200
print("十进制输出:%d,%d" %(num1,num2))
num3 = 3.1415926
print("浮点数输出:%.2f" %(num3))
str1 = "www.linuxe.cn"
print("s的标准输出:%s" %str1)
print("取出前三位:%.3s" %str1)
如果要输出百分号本身的话需要用2个%,而不能用反斜线。看例子更容易明白
name = input("请输入你的名字:")
age = input("请输入你的年龄:")
height = input("请输入你的身高:")
msg = "你的姓名是:%s,年龄:%s,身高:%s,学习进度:5%%" %(name,age,height)
print(msg)
2、使用format()格式化输出
相对基本格式化输出采用%的方法,format()功能更强大,也是以后主要使用的方法。该函数把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号'{}'作为特殊字符代替'%' ,大括号中可以使用索引的编号或者关键字实现类似后项引用的功能
print ('{} {}'.format('hello','world'))
print ('{0} {1}'.format('hello','world'))
print ('{0} {1} {0}'.format('hello','world'))
print ('{1} {1} {0}'.format('hello','world'))
print ('{a} {tom} {a}'.format(tom='hello',a='world'))
#输出结果依次是
#hello world
#hello world
#hello world hello
#world world hello
#world hello world