python基本语法(四)数据类型上

数字类型


int (整型)

一:基本使用

1、用途:年龄 号码 等级...

2、 定义方式

age=10 #age=int(10)
x=int('1111') # int只能将纯数字的字符串转成十进制的整型
print(type(x))
#>>> <class 'int'>

 

3 、常用操作+内置的方法
算数运算,比较运算

 

二:该类型总结
1 存一个值or存多个值
只能存一个值

 

2 有序or无序

没有有序无序这么一说

3 可变or不可变
  可变不可变类型总结:
   可变指的是改变原值,即在原值基础上进行修改
  可变类型的底层原理:在id不变的情况下,值可以改变
  不可变类型的底层原理:值改变,id也跟着变
int是不可变数据类型

age=10
print(id(age))
age=11
print(id(age))

'''
#>>>
1856746848
1856746880
'''

 

 

了解(**):
长整型Long,只有在python2中才有长整型号
复数complex
x=1-2j
print(x.real)
print(x.imag)
print(type(x))

 

一:基本使用
1 用途:薪资 身高 体重

2 定义方式

salary=3.1 #salary=float(3.1)
n=float('3.1')

 

3 常用操作
算数运算 比较运算

二:该类型总结
1 存一个值or存多个值
只能存一个值

2 有序or无序
没有有序无序这么一说

3 可变or不可变
float是不可变类型

x=3.1
print(id(x))
x=3.2
print(id(x))

'''>>>
253287403928
1253287403976
'''

字符串类型

字符串
一:基本使用
1 用途: 描述性质的数据,比如人的名字,单个爱好,地址

2 定义方式

name='egon' #name=str('egon')
x=str(1)
y=str(1.1)
z=str([1,2,3])
n=str({'a':1})
print(type(x))
print(type(y))
print(type(z))
print(type(n))
'''>>>
<class 'str'>
<class 'str'>
<class 'str'>
<class 'str'>
'''

 


3 常用操作+内置的方法
优先掌握的操作(*****):
1、按索引取值(正向取+反向取) :只能取

msg='hello world'
print(type(msg[5]))
print(msg[-1])
#msg[2]='A' <<错误
'''>>>
<class 'str'>
d
'''

 

2、切片(顾头不顾尾,步长)

msg='hello world'
print(msg[1:5],type(msg[1:5]))
print(msg[6:-1])
print(msg[6:11])
print(msg[6:])
print(msg[6::2])
'''>>>
ello <class 'str'>
worl
world
world
wrd
'''


了解(**)

msg='hello world'
print(msg[0:])
print(msg[::-1])
msg='hello world'
print(msg[-3:-6:-1])
'''>>>
hello world
dlrow olleh
row
'''
#print(msg[6:9:-1]) #此代码无输出内容

 



3、长度len

msg='hello world'
print(len(msg)) #>>> 11

4、成员运算in和not in

print('SB' in 'my name is alex,alex is SB')
print('alex' in 'my name is alex,alex is SB')
print('egon' not in 'my name is alex,alex is SB') # 推荐
print(not 'egon' in 'my name is alex,alex is SB')
#>>>全部输出>>>True

 

5、移除空白strip

name=' e gon '
print(name.strip(' '))    #>>>e gon
print(name.strip()) #>>>e gon
name='****A*e*gon****'
print(name.strip('*')) #>>>A*e*gon

name='****egon****'
print(name.lstrip('*')) #>>>egon****
print(name.rstrip('*')) #>>>egon****
pwd=input('>>: ').strip() #pwd='123 '
if pwd == '123':
print('login successful') #>>>
msg='cccabcdefgccccc'
print(msg.strip('c')) #>>>abcdefg
print('*-=egon *&^'.strip('-= *&^')) #>>>egon

 

6、切分split

msg='egon:18:male:180:160'
l=msg.split(':')
print(l)    #>>>['egon', '18', 'male', '180', '160'
print(l[3]) #>>>180

 

7、循环

msg='hello world'
for x in msg:
print(x)
'''>>>
h
e
l
l
o

w
o
r
l
d
'''

 


需要掌握的操作(****)
1、strip,lstrip,rstrip

name='*egon**'
print(name.strip('*'))  #>>>egon
print(name.lstrip('*')) #>>>egon**

print(name.rstrip('*')) #>>>*egon

 


2、lower,upper

name='EoN'
print(name.lower())    #>>>eon

name='egonN'
print(name.upper())    #>>>EGONN

3、startswith,endswith

print('alex is SB'.startswith('alex'))    #>>>True
print('alex is SB'.endswith('B'))    #>>>True

 

4、format的三种玩法

print('my name is %s my age is %s' %('egon',18))
print('my name is {name} my age is {age}'.format(age=18,name='egon')) # 可以打破位置的限制,但仍能指名道姓地为指定的参数传值

print('my name is {} my age is {}'.format('egon',18))
print('my name is {0} my age is {1} '.format('egon',18))
#四行代码都输出>>>my name is egon my age is 18

 

5、split,rsplit

info='egon:18:male'
print(info.split(':',1)) #>>>['egon', '18:male']

print(info.split(':',1)) #>>>['egon','18:male']
print(info.rsplit(':',1)) #>>>['egon:18','male']

 

6、join:只能将元素全为字符串的列表拼成一个大的字符串

info='egon:18:male'
l=info.split(':')
print(l) #>>>['egon', '18', 'male']
new_info='-'.join(l)
print(new_info) #>>>['egon', '18', 'male']

num=['a','b','c'] 
':'.join(num) #>>>a:b:c
# num=[1,2,'c'] #!!数字无法执行
# ':'.join(num)

 

7、replace

msg='my name is wupeiqi,wupeiqi is SB'
print(msg.replace('wupeiqi','Pig',1)) #>>>my name is Pig,wupeiqi is SB
print(msg) #>>>my name is wupeiqi,wupeiqi is SB


8、isdigit

print('111.1'.isdigit()) #>>False
print('1111'.isdigit()) #>>>True

 

AGE=73
age=input('>>: ').strip() #age='asdfasdf' #去用户输入的头尾的空格
if age.isdigit(): #判断变量值是否为数字
age=int(age)
if age > AGE:
print('too big')
elif age < AGE:
print('too small')
else:
print('you got it')
else:
print('必须输入数字啊傻叉')

 

其他操作(了解即可)(**)
1、find,rfind,index,rindex,count

msg='my name is alex,alex is hahaha'
print(msg.find('alex')) #>>>11 #找出字符串在大字符串的起始位置
print(msg.find('SB')) #>>>-1 #找不到会返回-1

print(msg.index('alex')) #>>>11
print(msg.index('SB')) # 找不到index会报错>>ValueError:

print(msg.find('alex',0,3)) #>>>-1

print(msg.count('alex')) #>>>2
print(msg.count('alex',0,15)) #>>>1

 

2、center,ljust,rjust,zfill

print('info egon'.center(50,'-')) 
print('info egon'.ljust(50,'-')) 
print('info egon'.rjust(50,'-')) 
print('info egon'.zfill(50)) 
'''>>>
--------------------info egon---------------------
info egon-----------------------------------------
-----------------------------------------info egon
00000000000000000000000000000000000000000info egon
'''

 

3、expandtabs

print('a\tb\tc'.expandtabs(1)) #>>>a b c

4、captalize,swapcase,title

print('my name is egon'.capitalize()) #>>>My name is egon
print('my Name Is egon'.swapcase()) #>>>MY nAME iS EGON
print('my name is egon'.title()) #>>>My Name Is Egon

 

5、is数字系列

num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='' #中文数字
num4='' #罗马数字

#isdigit():bytes,unicode
print(num1.isdigit()) #>>>True
print(num2.isdigit()) #>>>True
print(num3.isdigit()) #>>>False
print(num4.isdigit()) #>>>False

#isdecimal():unicode
print(num2.isdecimal()) #>>>True
print(num3.isdecimal()) #>>>False
print(num4.isdecimal()) #>>>False


#isnumberic;unicode,中文,罗马
print(num2.isnumeric()) #>>>True
print(num3.isnumeric()) #>>>True
print(num4.isnumeric()) #>>>True

 

6、is其他

print('abasdf123123'.isalnum()) #>>>True
print('asdfasdf'.isalpha()) #>>>True
print('egon'.islower()) #>>>True
print('ABC'.isupper()) #>>>True

print(' '.isspace()) #>>>True
print('My Name Is Egon'.istitle()) #>>>True

 

 

#二:该类型总结
1 存一个值or存多个值
只能存一个值

2 有序or无序
有序

3 可变or不可变
不可变

name='egon'
print(id(name)) #>>>2003839202000
name='alex'
print(id(name)) #>>>2003840071864

 

列表类型

作用:多个装备,多个爱好,多门课程,多个女朋友等

定义:[]内可以有多个任意类型的值,逗号分隔

my_girl_friends=['alex','wupeiqi','yuanhao',4,5] #本质my_girl_friends=list([...])

l=list('hello') # list内只能跟能够被for循环遍历的数据类型
print(l) #>['h', 'e', 'l', 'l', 'o']
l=list({'a':1,'b':2})
print(l)#>['a', 'b']



优先掌握的操作:

1、按索引存取值(正向存取+反向存取):即可存也可以取

names=['alex','wxx','lxx','egon']
names[0]='ALEX'# 列表第一元素以更改
print(names)#>>['ALEX', 'wxx', 'lxx', 'egon']

 

2、切片(顾头不顾尾,步长)

names=['alex','wxx','lxx','egon']
print(names[0:3]) #>['alex', 'wxx', 'lxx']

 

3、长度

names=['alex','wxx','lxx','egon']
print(len(names)) #>>4

 

4、成员运算in和not in

names=['alex','wxx','lxx','egon',4]
print(4 in names) #>>>True


5、追加

names=['alex','wxx','lxx','egon']
names.append('cxx1')
names.append('cxx2')
names.append('cxx3')
print(names)
#>>['alex', 'wxx', 'lxx', 'egon', 'cxx1', 'cxx2', 'cxx3']

 

6、删除

names=['alex','wxx','lxx','egon']
del names[2]
print(names)#>>>['alex', 'wxx', 'egon']

 

7、循环

names=['alex','wxx','lxx','egon']
for name in names:
print(name)
'''
alex
wxx
lxx
egon
'''

 


需要掌握的操作(****)

names=['alex','wxx','lxx','egon',4,3.1]
names.insert(1,'SB')
print(names) #>['alex', 'SB', 'wxx', 'lxx', 'egon', 4, 3.1]

names=['alex','wxx','lxx','egon',4,3.1]
res=names.remove('wxx') # 单纯的删掉,是按照元素的值去删除,没有返回值
print(res)#>>None
print(names) #>>['alex', 'lxx', 'egon', 4, 3.1]

 

 

names=['alex','wxx','lxx','egon',4,3.1]
res=names.pop(1) #拿走一个值,是按照索引去删除,有返回值
print(names) #>>['alex', 'lxx', 'egon', 4, 3.1]
print(res)#>>wxx

 

names=['alex','wxx','lxx','egon',4,3.1]
print(names.pop()) #>>3.1
print(names.pop()) #4
print(names) #>>['alex', 'wxx', 'lxx', 'egon']

 

names=['alex','wxx','lxx','lxx','egon',4,3.1]
print(names.count('lxx')) #>>2
print(names.index('lxx')) #>>2 ,返回索引号
names.clear()
print(names) #>>[]

x=names.copy()
print(x)
#>>['alex', 'wxx', 'lxx', 'lxx', 'egon', 4, 3.1]

names.extend([1,2,3])
print(names)

names.reverse()
print(names) 
#>>['alex', 'wxx', 'lxx', 'lxx', 'egon', 4, 3.1, 1, 2, 3

 

names=[1,10,-3,11]
names.sort(reverse=True)
print(names)
#>>[11, 10, 1, -3]

二:该类型总结
1 存一个值or存多个值
可以存多个值,值都可以是任意数据类型

2 有序or无序
有序
3 可变or不可变
可变

l=['a','b']
print(id(l))
l[0]='A'
print(id(l))
'''1887846495176
1887846495176'''
posted @ 2018-05-30 19:54  且听竹林雨  阅读(316)  评论(0编辑  收藏  举报