python学习之数据类型

#!/usr/bin/python

#-*-  coding:UTF-8 -*-

#date:20180501

Python数据类型

整型:int

字符串:string

       1、字符串一旦创建就不允许修改,所谓的for循环拿到的是创建了一个新的字符串

  创建    

str_01 = 'Hello world'

  删除    

del str_01,str_02

   拼接  

#1、通过“+” 来将两个字符串进行拼接
str_01 = 'hello'
str_02 = 'world'
new_str = str_01 + str_02
print(new_str)
>>>helloworld
#2、通过join.()方法(括号中只能是一个序列)
str_01 = 'hello'
str_02 = 'world'
list_str = [str_01,str_02]
new_str = '****'.join(list_str)
print(new_str)
>>>hello****world
'''注:通过“+”进行拼接,缺点是浪费内存,不建议使用,python中的字符串在C语言中体现为是一个字符数组,
每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,
万恶的 + 号每出现一次就会在内从中重新开辟一块空间。
'''

   切片

str_01 = 'hello world'
print(str_01[0:])#获取从第一个到最后的字符串,第一个字符从零开始计算
print(str_01[:])#获取整个字符串
print(str_01[-3:])#从倒数第三个字符开始到最后的字符即rld
print(str_01[3:7])#获取第四个字符开始到第六个字符即lo w

   分割 

#简单的分割用方法split,不能做多个条件的分割,指定特点的分割符对字符串进行切片分割为一个列表
Phone_Number = '400-300-200-1234'
print(Phone_Number.split('-'))
>>>['400', '300', '200', '1234']
print(Phone_Number.split('-',2))
>>>['400', '300', '200-1234']
'''
注:split是从左向右,以分割符,切片
        rsplit是从右向左,以分隔符,切片
        splitlines 是按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
'''
str1 = 'ab c\n\nde fg\rkl\r\n'
print (str1.splitlines())
>>>['ab c', '', 'de fg', 'kl']
str2 = 'ab c\n\nde fg\rkl\r\n'
print (str2.splitlines(True))
>>>['ab c\n', '\n', 'de fg\r', 'kl\r\n']
#复杂的分割
#r表示不转义,分隔符可以是;或者,或者空格后面跟0个多个额外的空格,然后按照这个模式去分割
#\  转义符
#\n  换行
#\v
#\t  tab制表符
#\r  回车
#\s 匹配任意空白字符
#r或R 按字符串本来的意思输出 即  r'\n' -->\n
import re
line = 'hello world;     python,  I  ,like,       it'
print(re.split(r'[;,s]\s*',line))
>>>['hello world', 'python', 'I  ', 'like', 'it']
#正则表达式中*表示匹配前面字符0次或多次

   格式化

print("%s python is %s ok!"%("my","me"))
#>>>my python is me ok!
#另一种格式化表达方式,通过{}和: 来代替%
#通过方法str.formart(),支持位置不按顺序顺序
print("{}{}".format("hello\t","china"))
#>>>hello    china
print("{1} {0} {1}".format("hello","china"))
#>>>china hello china
#可配置参数
print("网站名:{name} ,地址:{url}".format(name="学习Python" ,url="www.baidu.com"))
#>>>网站名:学习Python ,地址: www.baidu.com
注:%s 表示字符串
%d 表示数字
  %f 表示浮点型

   字符串的开头和结尾的处理 

字符串的开头和结尾的处理
'''
比方我们要查一个文件的名字是以什么开头或者什么结尾
方法为:
str.startswith()
str.endswith()
'''
file_name = 'hello world2018.txt'
print(file_name.startswith('H'))
#>>>False
print(file_name.endswith('txt'))
#>>>True

   字符串的查找和匹配 

''
一般查找
我们可以很方便的在长的字符串里面查找子字符串,
会返回子字符串所在位置的索引, 若找不到返回-1
'''
print(file_name.find('ll'))
>>>2
print(file_name.find('ld'))
>>>9
'''
复杂查找
'''
t_date = '2018/05/12'
import re
if re.match(r'\d+/\d+/\d+',t_date):
    print('ok,match')
else:
    print('no march')
>>>ok,match
注:+ 正则表达式中表示匹配前面字符一次或多次

  字符串的替换

"""普通替换的方法:str.replace()"""
str_04 = 'python is a easy language,but if you want to learn it ,you should keep up write code everyday!'
str_new = str_04.replace('easy','difficult')
print(str_new,'\n',str_04)
#>>>python is a difficult language,but if you want to learn it ,you should keep up write code everyday!
#         python is a easy language,but if you want to learn it ,you should keep up write code everyday!
"""复杂的需要处理多个替换方法:re.sub()"""
my_home = 'man 75 , girl 60'
print(re.sub(r'\d+','70',my_home))
#>>>man 70 , girl 70

猜你喜欢

转载自www.cnblogs.com/sunxiuwen/p/8999550.html
今日推荐