数据类型(1):数字、字符串、布尔值

时间:2022-12-12 17:50:58

1.1  整数

 Python可以处理任意大小的整数,当然包括负整数,,例如:1100-2550,等等。

1.2  浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.233.14-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

1.3  数字内置的方法:进制转换

bin(11)  十进制11转换成二进制

oct(10)  十进制10转换成八进制

hex(16)  十进制16转换成十六进制

2、字符串

字符串是以一对单引号'或双引号"括起来的任意文本,或者是由一对三引号'括起来的多行文本,''比如'abc'"xyz"等等。

Python中没有字符的类型,字符串本身就是一个单独的值,如果要取出字符串中的一个字符,可以使用以下方式:

name = 'mark'    name[1] :取得name中第二个位置的字符

2.1字符串的拼接和重复

字符串可以使用+来进行拼接,也可以使用*来进行重复输出,例如:

'hello,' + ' python.'  --->  'hello, python.'

'python' * 3  --->  'pythonpythonpython'

2.2字符串的内置方法:

2.2.1 strip方法:

msg='             hello         '
print(msg.strip())

>>>'hello'
msg='***hello*********'
msg=msg.strip('*')
print(msg)

>>>'hello'
print(msg.lstrip('*'))
>>>'hello*********'

print(msg.rstrip('*'))
>>>'***hello'

 

2.2.2  split方法:

info='root:x:0:0::/root:/bin/bash'
user_l=info.split(':')
print(user_l[6])
>>>['root', 'x', '0', '0', '', '/root', '/bin/bash']
msg='hello world egon say hahah'
print(msg.split()) #默认以空格作为分隔符
>>>['hello', 'world', 'egon', 'say', 'hahah']
cmd='download|xhp.mov|3000'
print(cmd.split('|',1))  #第二个参数表示分割次数
>>>['download', 'xhp.mov|3000']
#用处
while True:
cmd=input('>>: ').strip()
if len(cmd) == 0:continue
cmd_l=cmd.split()
print('命令是:%s 命令的参数是:%s' %(cmd_l[0],cmd_l[1]))
>>:cd D:\
>>>命令是:cd 命令的参数是:C:\

2.2.3  isdigit方法

age=input('>>: ').strip()
if age.isdigit():  #不适用于浮点数
  print(‘is int’)

else:
  print('must be int')

2.2.4  startswitch,endswitch方法

name='alex_AB'
print(name.endswith('AB'))
print(name.startswith('alex'))

>>>
True
True

2.2.5  replace方法

name='hello world, hello python, python is good.'
print(name.replace('python','java',1))  #第三个参数为替换次数

>>>
hello world, hello java, python is good.

2.2.6  format方法

print('my name is %s, my age is %s, my sex is %s.' %('egon',18,'male'))
>>>my name is egon, my age is 18, my sex is male.

print('my name is {}, my age is {}, my sex is {}.'.format('egon',18,'male'))
>>>my name is egon, my age is 18, my sex is male.

print('my name is {0}, my age is {1}, my sex is {0}:{2}.'.format('egon',18,'male'))
>>>my name is egon, my age is 18, my sex is egon:male.

print('my name is {name}, my age is {age}, my sex is {sex}.'.format(sex='male',age=18,name='egon'))
>>>my name is egon, my age is 18, my sex is male.   #可以乱序

2.2.7  find,index,count方法

name='goee say hello'
print(name.find('o',1,3)) #左闭右开,找不到则返回-1,不会报错,找到了则显示第一个索引
print(name.index('S')) #同上,但是找不到会报错
print(name.count('e')) #左闭右开,如果不指定范围则查找所有

2.2.8  join方法

join方法是split方法的反向

info='root:x:0:0::/root:/bin/bash'
print(info.split(':'))

>>>['root', 'x', '0', '0', '', '/root', '/bin/bash']

2.2.9  lower,upper方法(字母转换大小写)

name='Python'
print(name.lower())
print(name.upper())

2.2.10  is系列的方法

判断数字的几个方法:
isdigt:适用于str,bytes,unicode
isdecimal:适用于str,unicode
isnumeric:str,unicode,中文数字,罗马数字

判断字母和数字的几个方法:
name='egon123'
print(name.isalnum()) #字符串由字母和数字组成
name='helloworld'
print(name.isalpha()) #字符串只由字母组成


其他:
name='asdfor123'
print(name.isidentifier())  #判断是否包含关键字
name='egGon'
print(name.islower())
print(name.isupper())
print(name.isspace())
name='Egon say'
print(name.istitle())    #判断是否首字母大写

2.2.11其他方法

expandtabs方法
name='egon\thello'  #\t输出一个制表符
print(name)
print(name.expandtabs(1))  #制表符转换成空格


center,ljust,rjust,zfill方法
name='egon'
print(name.center(30,'-'))  #字符串中心式填充
print(name.ljust(30,'*'))  #左对齐填充
print(name.rjust(30,'*'))  #右对齐填充
print(name.zfill(50)) #用0填充  #右对齐


captalize,swapcase,title方法
name='eGon'
print(name.capitalize()) #首字母大写,其余部分小写
print(name.swapcase()) #大小写翻转
msg='egon say hi'
print(msg.title()) #每个单词的首字母大写

3、布尔值

一个布尔值只有TrueFalse两种值,要么是True,要么是False,在Python中,可以直接用TrueFalse表示布尔值(区分大小写),也可以通过布尔运算计算出来,例如:

>>>True

True

>>>10 == 8

False