一、什么是数据类型
定义变量时,变量值才是我们需要存储的数据,一般数据类型指的就是变量值的不同种类
二、数据类型为什么需要分类?
变量值是用来保存现实世界中的状态的,所以针对不同的状态就就需要用不同的类型的数据去表示
三、该怎么用?
#用户与程序交互 #python3 (input)=python2 (raw_input) #在python3中,用户input的内容都是字符串(str)类型
四、基本的数据类型
1.整型-int
定义:age = 30 # age=int(30)
print(id(age))
print(type(age))
print(age)
使用方法:记录年龄、银行卡号、等级
2.浮点型-float
定义: salary = 3000.2 #salary=float(3.1)
print(id(salary))
print(type(salary))
print(salary)
使用方法:记录薪资、身高、体重
3.字符串-str
定义:
在单引号、双引号、三引号内包含的一串字符
#hobby = "read" # hobby==str(“read”) #msg=''' # today # hello # sunshine # ''' #print(type(hobby)) #print(tape(msg))
注意:
msg="my name is 'xxx'"
print(msg)
作用:表示描述性质的状态并记录此时的状态,如:人名,家庭住址
如何使用:
字符串类型只能:+或者*
#msg="hello" #name="Namy" #print(msg+name) #helloNamy #name="Namy" #print(name*5) #NamyNamyNamyNamyNamy #name1="Pizza" #name2="Namy" #print(name1>name2)#同种类型的字符串进行比较(先比较首个字符,若首字符一样,再比较第二个字符,知道比较出结果)
4.列表-list
作用:
用来存放当前状态的多个数据信息,且一般数据类型较单一或者数量少
定义: product = ["airplane", "train", "car"] #在逗号内用逗号分隔开多个“任意”类型的值
#product = ["phone",{"name":"alex","sex":"male"},1] # product=list(["phone",{"name":"alex","sex":"male"},1])
#print(id(product))
#print(type(product))
#print(product)
#name1="Namy"
#name=["hello","sunshine",name1]
#print(name) #["hello","sunshine",Namy]
怎么使用列表:
按照索引取值 #索引是从0开始的 #hobbies=["read","run","basketball"] #print(hobbies) #print(hobies[1]) #l=["Namy","female",["sing",28]] #print(l[2][1])
练习:
#students_info=["Namy",18,["play","sing"],["Luffy",18,["eat","sleep"]]]
#取出第二个学生的第一个爱好
#print(students_info[3][2][0])
5.字典-dict
作用:用来存取多个值。按照key:value的方式存放的值,取的时候可以通过key而非索引去取值,key对value有描述性功能
定义:在{}内用逗号分隔开多个元素,每个元素都是key:value的格式,其中value可以是“任意”类型,key大多数情况下都是字符串类型
# user_info=["Namy","female",18,["sing","dance",22222]] #print(user_info[1]) #print(user_info[3][2]) #print(user_info[3]) user_info={ "name":"Namy", "sex":"female", "age":18, "company":{"c_name":"pirates","c_addr":"ocean","members":7} } #print(id(user_info)) #print(type(user_info)) #print(user_info) #print(user_info["name"]) #Namy #print(user_info["company"]["c_name"]) #pirates
info = {"name":"cattle","hobbies":["eat","sleep"],"sex":"female"}
6.布尔值-bool
作用:用于判断的条件,只有True和False
定义:True,False
#print(10>2 and 3>14)
#print(type(True))
重点:
*****所有的数据类型本身就是一种布尔值,即所有的数据类型都可以当作条件去使用
***0;None;空(空字符串、空字典、空列表、空元组、空集合)都是False;
***其余的值均为真
print(bool(0))
print(bool(None))
print(bool(""))
print(bool([]))
print(bool({}))
# 可变类型:id不变的前提下,value改变,则称为可变类型,比如字典、列表 # 不可变类型:vulue一旦改变,id也跟着该变,则成为不可变类型(id改变则建立新的内存空间来保存value)
五、格式化输出
1.占位符
%s:实际上可接收任意类型的值
%d:只可接收int类型的值
name = input("请输入姓名:") age = input("请输入年龄:") print("My name is %s and my age is %s" %(name,age))
练习:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式 ------------ info of Egon ----------- Name : Egon Age : 22 Sex : male Job : Teacher ------------- end ----------------- name = input("Name:") age = input("Age:") sex =input("Sex:") job = input("Job:") msg =""" --------info of %s--------- name:%s age:%s sex:%s job:%s """ %(name,name,age,sex,job) -------------end---------- print(msg)
六、基本运算符
A.算术运算
1.+ - * /
2.// :整除
%:取余数(a%b表示a/b之后的结果就是余数,而不是a/b的值)
** :冥(a**b表示a的b次方)
B.逻辑运算
and :两边条件同时成立结果才为真
or :两边只要有一边条件成立结果就成立
not :否定后边的条件
C.比较运算
> < >= <= != ==
#列表之间比较大小,仅限于相同位置对应的值是同一类型 #l1=[1,"a",3] #l2=[1,3] #print(l1>l2) #TypeError: '>' not supported between instances of 'str' and 'int'
*****重点: 链式赋值 #a=10 #b=a #c=b #d=c #a=b=c=d=10 交叉赋值 #x=10 #y=20 #temp=x #x=y #y=temp #print(x,y) #x,y=y,x #print(x,y) 变量值的解压缩 #l=["Namy","luffy","Brooke","Sauro"] #x=l[0] #y=l[1] #z=l[2] #x,y,z=l #print(x,y,z) #l=["Namy","Luffy","Brooke","Sauro"] #x,y,z,a=l #print(x,y,z,a) #_="Brooke" #print(_) #Brooke #_,_,x,y=l #print(_) #Luffy(输出最后一个_所代表的变量) #_,x,_,y=l #print(_) #Brooke #performance=[1,2,3,4,5,6,7,8,9] #mon1,mon2,mon3,*_=performance #print(mon1) #print(mon2) #print(mon3) # #mon1,mon2,*_,mon8,mon9=performance #print(mon1) #1 #print(mon2) #2 #print(mon8) #8 #print(mon9) #9 对于字典来说,解压出来的是key #info={"name":""Namy,"age":19,"sex":"female"} #x,y,z=info #print(x,y,z) #name,age,sex
七、与用户交互
在python3 中的input会将用户输入的任何内容都存成字符串类型
name=input("请输入姓名:") #name="Namy"
pwd=input("请输入密码:") pwd ="123"
#print(type(name))
#print(type(pwd))
在python2中的raw_input用法与python3中的input是一样的
name=input("请输入姓名:") #name="Namy"
pwd=input("请输入密码:") pwd ="123"
#print(type(name))
#print(type(pwd))