数据类型
1、什么是数据类型
变量值才是我们存储的数据,所以数据类型指的就是变量值的不同种类
2、为何数据要分类型?
变量值是用来保存现实世界中的状态的,那么针对不同的状态就应该用不同类型的数据去表示
3、如何用,即数据类型的分类?
一:整型int
1、作用:表示人的年龄、各种号码、等级
2、定义
age=18 #age=int(18)
print(id(age))
print(type(age))
print(age)
3、如何用
二、浮点型float
1、作用:表示身高、体重、薪资。。。
2、定义
salary=3.1 #salary=float(3.1)
print(id(salary))
print(type(salary))
print(salary)
3、如何用
三、字符串类型str
1、作用:表示描述性质的状态,比如人的名字,家庭住址
2、定义:在单引号、双引号、三引号内包含的一串字符
name='egon' #name=str('egon' )
msg='''
alex
egon
wxx
'''
print(type(name))
print(type(msg))
注意点:
msg="my name is 'egon'"
print(msg)
3、如何用
字符串类型只能:+或者*
msg='hello'
name='egon'
print(msg + name)
name='egon'
print(name * 10)
print(1)
print(2)
print(3)
print('-'*100)
print(1)
print(2)
print(3)
msg1='zaello '
msg2='za'
print(msg2 > msg1)
print('a' > 'Z')
四:列表list
1、作用:用来存取多个值
2、如何定义:在[]内用逗号分隔开多个任意类型的值
l=[1,'a',3.1,[1,3]] #l=list([1,'a',3.1,[1,3]])
print(id(l))
print(type(l))
print(l)
x=111
l=[1,2,x,'a']
print(l)
hobbies=['read','run','basketball']
0 1 2
3、如何用:按照索引取值,索引是从0开始的
print(hobbies[2]) #
print(hobbies)
l=['alex','male',['oldboy',200]]
print(l[2][1])
练习
students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
取出第一个学生的第一个爱好
print(students_info[0][2][0])
五:字典dict
1、作用:用来存取放多个值,按照key:value的方式存放的值,取的时候可以通过key而非索引去取值,key对value是有描述性功能的
2、定义方式:在{}内用逗号分隔开多个元素,每一个元素都是key:value的格式,其中value可以是任意类型,key大多数情况都是字符串类型
'name' 'sex' 'age' 'company_info'
user_info=['egon','male',18,['oldboy','Shanghai',20]]
print(user_info[1])
print(user_info[0])
print(user_info[3][1])
'name' 'sex' 'age' 'company_info'
user_info={
'name':'egon',
'sex':'male',
'age':18,
'company_info':{'c_name':'oldboy','c_addr':'Shanghai','members':20}
}
print(id(user_info))
print(type(user_info))
print(user_info)
print(user_info['name'])
print(user_info['company_info']['c_name'])
#练习
students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
print(students[1]['hobbies'][1])
六:布尔bool
1、作用:用于判断的条件
2、如何定义: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({}))
与用户交互
在python3中的input会将用户输入的任何内容都存成字符串类型
name=input("请输入您的姓名:") #name='egon'
pwd=input("请输入您的密码:") #pwd='123'
print(name,type(name))
print(pwd,type(pwd))
print('=========>1')
print('=========>2')
print('=========>3')
在python2中的raw_input用法与python3的input是一摸一样的
name=raw_input("请输入您的姓名:") #name='egon'
pwd=raw_input("请输入您的密码:") #pwd='123'
age=input('age>>>: ') #age='18'
print(age,type(age))
age=int(age)
print(age > 11)
格式化输出
name='egon'
age=18
%s其实可以接收任意类型的值
print('my name is %s my age is %s' %(name,age))
print('my name is %s my age is %s' %(name,[1,2]))
%d只能接收int类型的值
print('my age is %d' %age)
name=input('username>>: ')
age=input('age>>: ')
sex=input('sex>>: ')
job=input('job>>: ')
print("""
------------ info of %s -----------
Name : %s
Age : %s
Sex : %s
Job : %s
------------- end -----------------
""" %(name,name,age,sex,job))
基本运算符
print(1 + 2)
x=10
y=20
res=x + y
print(res)
/是有零有整
print(10 / 3)
// 地板除,只取整数部分
print(10 // 3)
print(10 // 4)
% :取余数
print(10 % 3)
print(10 ** 2)
pwd='123'
print(pwd != '123')
列表之间比较大小,仅限于相同位置对应的值是同一类型
l1=[1,'a',3]
l2=[1,3]
print(l2 > l1)
print(10 > 1.1)
age=18
age+=1 #age=age + 1
age*=10 #age=age*10
age//=3 #age=age//3
print(age)
重点:
链式赋值
d=10
c=d
b=d
a=d
a=b=c=d=10
交叉赋值
x=100
y=200
temp=x
x=y
y=temp
print(x,y)
x,y=y,x
print(x,y)
变量值的解压缩
l=['egon','asb','wsb']
x=l[0]
y=l[1]
z=l[2]
x,y,z=l
print(x,y,z)
l=['egon','asb','wsb','lsb']
x,y,z,a=l
print(x,y,z,a)
_='lsb'
x,_,z,_=l
print(_)
yj=[11,22,33,44,55,66,77,88,99,100,200,300]
mon1,mon2,mon3,mon4,mon5,mon6,*_=yj
print(mon1)
print(mon2)
print(mon3)
print(mon4)
print(mon5)
print(mon6)
mon1,mon2,*_,mon11,mon12=yj
print(mon1)
print(mon2)
print(mon11)
print(mon12)
对于字典来说,解压出来的是key
info={'name':'egon','age':18,'sex':'male'}
x,y,z=info
print(x,y,z)
逻辑运算
print(not 10 > 3)
print(10 > 3 and 3 > 2)
print(3 >= 3 and 3 > 2 and 'xxx' != 'egon' and 3 > 2)
print(False or True)
print(3 > 3 or 3 > 2 or 'xxx' != 'egon' or 3 > 2)
print(not 3 > 3 or (not 3 > 2 and 'xxx' == 'egon' or 3 > 2))
if 3 >= 3 and 3 > 2:
if 'xxx' != 'egon' and 3 > 2:
print('===>')
print(3 >= 3 and 3 > 2 and 'xxx' != 'egon' and 3 > 2)
##################################################
作业:
明日预习:
流程控制之if判断
流程控制之while循环
流程控制之for循环
数据类型及其内置方法
https://www.cnblogs.com/linhaifeng/articles/7133167.html
明日默写:早8:20-8:45
1、简述cpu、内存、硬盘的作用
cpu=控制器+运算器:计算机的指挥系统,寻址,取指,译码分析,指挥执行。算数运算与逻辑运算
内存:暂时存放程序和数据,cpu从这里取数据
硬盘:永久存放程序和数据,加载到内存
2、简述什么是操作系统以及它有何作用
操作系统位于计算机硬件与应用软件之间
是一个协调、管理、控制计算机硬件资源与软件资源的控制程序
控制硬件
把对硬件的复杂的操作封装成优美简单的接口(文件),给用户或者应用程序去使用
3、python test.py执行的三个阶段是什么?在哪个阶段识别文件内的python语法?
启动python3解释器
python3解释器将文件内容D:p1.py从硬盘读入内存
python3解释器解释执行文件代码 此阶段识别python语法
4、简述python的内存管理
引用计数一旦为0,就是垃圾,会被python的垃圾回收机制自动回收
内存优化:python有常量池,一些常用简单类型直接使用此常量池
5、基本数据类型的定义与使用
数据类型指的是数值的不同种类,用来描述现实世界中的不同状态
今日作业:
1、整理当天所学内容,编写博客,明天早晨检查
数据类型 用户交互 格式化输出 基本运算符
2、python test.py执行的三个阶段是什么?在哪个阶段识别文件内的python语法?
启动python3解释器
python3解释器将文件从硬盘读入内存
python3解释器解释执行文件代码 此阶段识别python语法
3、将下述两个变量的值交换
s1='alex'
s2='SB'
s1,s2=s2,s1 #交叉赋值
4、判断下述结果
msg1='alex say my name is alex,my age is 73,my sex is female'
msg2='alex say my name is alex,my age is 73,my sex is female'
msg1 is msg2 False
msg1 == msg2 True
5、什么是常量?在python中如何定义常量
不变的量 在python中没有从语法意义上去强制性定义常量,一般用全大写字母
6、有存放用户信息的列表如下,分别存放用户的名字、年龄、公司信息
userinfo={
'name':'egon',
'age':18,
'company_info':{
'cname':'oldboy',
'addr':{
'country':'China',
'city':'Shanghai',
}
}
}
要求取出该用户公司所在的城市
print(userinfo['company_info']['addr']['city'])
students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
取第二个学生的第二个爱好
print(students[1]['hobbies'][1])
要求取出三名学生的详细信息分别赋值给三个变量(用一行代码实现)
alex,egon,wupeiqi=students #变量值的解压缩