1. 数据类型
1.1 数字
数字的作用:与数字相关,例如:手机号、QQ号、身份证号等,用数字表示
数字分为:整数(int)、浮点数(float)、复数(了解)
例子:
age = 10 print(type(age)) salary = 5680.85 print(type(salary))
长整型和复数,了解即可
长整型:在pyhton2中使用,在python3已经废弃掉
复数:
x = 1 - 2j # 定义 print(x.real) # 获取实部 print(x.imag) # 获取虚部
整数分为:二进制、八进制、十进制、十六进制等
进制之间可以相互转换,例如:
age = 10 # age=int(10) print(bin(age)) # 十进制转化为二进制 print(oct(age)) # 十进制转化为八进制 print(hex(age)) # 十进制转化为十六进制
1.2 字符串
作用:定义名字、地址、国籍等描述性信息
定义:在单引号、双引号、三引号内由一串字符组成;字符串,本身存储一个值,由一串字符组成。
常用操作有:
移除空白
切分
长度
索引
切片
1.2.1 移除空白
移除空白的方法是strip,例如:
msg=' welcome to beijing ' print(msg.strip()) # 移除左右两侧空白 print(msg.rstrip()) # 移除右侧空白 print(msg.lstrip()) # 移除左侧空白
运行结果:
welcome to beijing welcome to beijing welcome to beijing
移除指定字符,比如移除指定字符’*’,例如:
msg='******python******' print(msg.strip('*')) print(msg.lstrip('*')) print(msg.rstrip('*'))
运行结果:
python python****** ******python
1.2.2 切分
字符串切分,通过制定切分字符,进行切分,切分的结果是一个列表,例如:
user_info='root:x:0:0::/root:/bin/bash' user_list=user_info.split(':') print(user_list)
运行结果:
['root', 'x', '0', '0', '', '/root', '/bin/bash']
指定切分次数进行字符串切分,例如:
cmd_info='get|sys.log|error' cmd_list=cmd_info.split('|',1) print(cmd_list)
运行结果:
['get', 'sys.log|error']
字符串默认切分分割符空格,例如:
msg='my name is jack '
运行结果:
['my', 'name', 'is', 'jack']
1.2.3长度
统计字符串长度,实际就是统计字符的个数,例如:
msg='hello world' print(msg.__len__()) # 属于内置方法 print(len(msg)) # 等价于msg.__len__()
1.2.4 切片
切片,跟下标有关,顾头不顾尾的操作,例如:
msg = 'hello world' print(msg[1:4]) print(msg[:4]) print(msg[4:]) print(msg[:-1]) print(msg[:]) print(msg[2:7:2])
执行结果:
ell hell o world hello worl hello world low
1.2.5 其他操作
1.2.5.1 endswith startswith
startswith 以…开头,判断的结果是True、False
endswith 以…结尾,判断的结果是True、False
例如:
name='alex_SB' print(name.endswith('SB')) # 以SB开头,判断成功,显示True print(name.startswith('alex')) # 以alex结果,判断成功,显示True
1.2.5.2 replace
replace字符串的替换,例如:
name='alex say :i have one tesla,my name is alex' print(name.replace('alex','SB',1)) # 指定替换次数
1.2.5.3 format
字符串本身提供字符串格式的方法format,例如:
print('{} {} {}'.format('jack',58,'male')) print('{0} {1} {0}'.format('jack',58,'male')) print('NAME:{name} AGE:{age} SEX:{sex}'.format(age=58,sex='male',name='jack'))
运行结果:
jack 58 male jack 58 jack NAME:jack AGE:58 SEX:male
1.2.5.4 isdigit
判断字符串是否为数据,提供了三种方法isdigit、
num='123' print(num.isdigit())
利用isdigit判断是否为数字,进行程序的判断运行
jack_age=73 while True: age=input('>>: ').strip() if len(age) == 0:continue if age.isdigit(): age=int(age) print(age,type(age))
1.2.5.5 find index
name='jack say hello' print(name.find('o',1,3)) # 顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引 print(name.index('e',2,4)) # 同上,但是找不到会报错 print(name.count('e',1,3)) # 顾头不顾尾,如果不指定范围则查找所有
1.2.5.6 join
利用join,进行字符串的拼接,内容必须是字符串;否则会类别报错,
l=['jack','say','hello','world'] #类别内容必须都是字符串 print(':'.join(l)) tag=' ' print(tag.join(['jack','say','hello','world'])) #可迭代对象必须都是字符串
1.2.5.7 填充
利用center方法,进行填充,填充可以指定字符,默认填充字符是空格,例如:
name='jack' print(name.center(30)) print(name.center(30,'*')) print(name.ljust(30,'*')) print(name.rjust(30,'*')) print(name.zfill(30))
运行结果:
jack *************jack************* jack************************** **************************jack 00000000000000000000000000jack
1.2.5.8 expandtabs
指定tab键空格数量,默认的tab键是四个空格,例如:
name='jack hello' print(name) print(name.expandtabs(2))
1.2.5.9 大小写转换
name='JACK' print(name.lower()) # 大写转小写 name='jack' print(name.upper()) # 小写转大写
1.2.5.10 capitalize swapcase title
name='jack say' print(name.capitalize()) # 首字母大写 print(name.swapcase()) # 大小写翻转 msg='jack say hi' print(msg.title()) # 每个单词的首字母大写 name='jack123' print(name.isalnum()) # 字符串由字母和数字组成 name='jack' print(name.isalpha()) # 字符串只由字母组成
运行结果:
Jack say JACK SAY Jack Say Hi True True
1.2.5.11 判断数字
利用isdigit判断是否为数字,可以对Bytes、unicode进行数字判断:
num1=b'4' #Bytes num2=u'4' #unicode,python3中无需加u就是unicode num3='四' #中文数字 num4='Ⅳ' #罗马数字 print(num1.isdigit()) print(num2.isdigit()) print(num3.isdigit()) print(num4.isdigit())
运行结果:
True True False False
利用isnumberic进行判断中文和罗马的数字
num1='四' #中文数字 num2='Ⅳ' #罗马数字 print(num1.isnumeric()) print(num2.isnumeric())
利用isdecimal进行判断unicode的数字
num1=u'4' #unicode,python3中无需加u就是unicode num2='四' #中文数字 num3='Ⅳ' #罗马数字 #isdecimal:对unicode的数字进行判断 print(num1.isdecimal()) # 结果True print(num2.isdecimal()) # 结果False print(num3.isdecimal()) # 结果False