于Python最重要的数据类型包含字符串、名单、元组和字典.本文重点介绍Python基础知识.

一.字符串基础

       
字符串指一有序的字符序列集合,用单引號、双引號、三重(单双均可)引號引起来.如:

        s1='www.csdn.net'   s2="www.csdn.net"   s3='''aaabbb'''

        当中字符串又包含:

        1.转义字符串

        像C语言中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,python也有转义字符.例如以下:

                \\-反斜杠符号   \'-单引號   \"-双引號  \ a-响铃   \b-退格(Backspace) 

                \n-换行   \r-回车   \f-换页   \v-纵向制表符   \t-横向制表符   \e-转义

                \000-空   \oyy-八进制数yy代表的字符   \xyy-十进制yy代表的字符

        2.raw字符串

        Python中原始字符串(raw strings),r关闭转义机制.告诉Python后面是连串,"\"不当转义字符处理.例:

#转义字符和raw字符
s1="aa\nbb"
print s1
s2=r"aa\nbb"
print s2 #输出
aa
bb
aa\nbb #raw原始字符串处理磁盘路径
open(r'C:\temp\test.txt','a+')
open('C:\\temp\\test.txt','a+')

        3.unicode字符串

        告诉Python是Unicode编码,Unicode(统一码、万国码)是一种在计算机上使用的字符编码.在Unicode之前用的都是ASCII码,Unicode通过使用一个或者多个字节来表示一个字符.Python里面默认全部字面上的字符串都用ASCII编码,能够通过在字符串前面加一个'u'前缀的方式声明Unicode字符串,这个'u'前缀告诉Python后面的字符串要编成Unicode字符串.例:s=u'aa\nbb'

        中文处理一直非常让人头疼,推荐:Unicode和Python的中文处理

        4.格式化字符串

        字符串格式化功能使用字符串格式化操作符%(百分号)实现,在%的左側放置一个字符串(格式化字符串),而右側放置希望格式化的值,也但是元组和字典.假设须要在字符串里包含百分号,使用%%.假设右側是元组的话,则当中每个元素都会被单独格式化,每个值都相应一个转化说明符.例:

        "your age %d,sex %s,record %f"%(28,"Male",78.5)

        输出:'your age 28,sex Male,record 78.500000'

        它有点类似于C语言的printf("%d",x),当中百分号%相当于C语言的逗号.当中字符串格式化转换类型例如以下:

                d,i  带符号的十进制整数

                 o   不带符号的八进制

                 u   不带符号的十进制

                 x   不带符号的十六进制(小写)

                 X   不带符号的十六进制(大写)

               e,E  科学计数法表示的浮点数(小写,大写)

               f,F   十进制浮点数

                 c   单字符

                 r    字符串(使用repr转换的随意Python)

                 s   字符串(使用str转换的随意Python)

              g,G  指数大于4或小于精度值和e同样,否则和f同样

二.字符串操作

        字符串的基础操作包含切割,索引,乘法,推断成员资格,求长度等.

        1.+连接操作

        如:s1='csdn' s2='Eastmount' s3=s1+s2

             print s1,s2 => 输出:csdn Eastmount

             print s3 => 输出:csdnEastmount

        2.*反复操作

        如:s1='abc'*5

             print s1 => 输出:abcabcabcabcabc

        3.索引s[index]

        Python的索引格式string_name[index],能够訪问字符串里面的字符成员.

        4.切片s[i:j]

        Python中切片的基本格式是s[i:j:step],当中step表示切片的方向,起点不写从0開始,终点不写切到最后.如:

                s='abcdefghijk'

                sub=s[3:8]

                print sub => 输出defgh_

                                             3      78 (起点是3 终点8不取)

        当中当step=-1时表示反方向切片.如:

                s='abcdefghijk'

                sub=s[-1:-4:-1]

                print sub => 输出kji

         由于最后一个"-1"表示从反方向切片,s[9]='j' s[-2]='j',正方向第一个'a'索引下标值为0,最后一个'k'索引下标值为-1.故'j'为-2,而sub[-1:-4:-1]表示从k(-1位置)切到h(-4位置,但不取该值).故结果为"kji".

         假设想完毕字符串逆序,s='www.baidu.com',则可s1=[-1::-1]就可以.起点为m(-1),无终点表示切到最后.

         5.字段宽度和精度

         前面讲述的format()函数中涉及到该知识,如'%6.2f'%12.345678 输出"口12.35"当中6表示字段宽度,2表示精度,故补一个空格,同一时候採用四舍五入的方法结果输出12.35.

         同一时候,零(0)可表示数字将会用0填充,减号(-)用来实现左对齐数值,空白(" ")意味着正数前加上空格,在正负数对其时很实用,加号表示无论正数还是负数都标识出符号,对齐时也实用.例:

#字段宽度和精度
num = 12.345678
s1 = '%6.2f'%num
print s1
#补充0
s2 = '%08.2f'%num
print s2
#减号实现左对齐
s3 = '%-8.2f'%num
print s3
#空白
print ('% 5d'%10) + '\n' + ('% 5d'%-10)
#符号
print ('%+5d'%10) + '\n' + ('%+5d'%-10) #输出
12.35
00012.35
12.35
10
-10
+10
-10

三.字符串方法

        字符串从string模块中"继承"了非常多方法,以下解说一些经常使用的方法:

        find()

        在一个较长的字符串中查找子字符串,它返回子串所在位置的最左端索引,假设没有找到则返回-1.其格式为"S.find(sub [,start [,end]]) -> int",当中该方法可接受可选的起始点和结束点參数.而rfind()从右往左方向查找.

title = 'Hello Python,Great Python'
length = len(title)
print length
print title.find('Python')
print title.find('Python',10,30) #输出:
25
6
19

        join()

       其格式为"S.join(iterable) -> string",含义为"Return a string which is the concatenation of the strings in the iterable. The separator between elements is S."即用来在队列中加入元素,但队列中元素必须是字符串.它是split方法的逆方法.

seq = ['1','2','3','4']
sep = '+'
print sep.join(seq) #连接字符串列表 sep表示'+'连接 dirs = '','usr','bin','env'
print '/'.join(dirs)
print 'C:'+'\\'.join(dirs) #输出
1+2+3+4
/usr/bin/env
C:\usr\bin\env

        split()

        字符串切割函数,格式为"S.split([sep [,maxsplit]]) -> list of strings",将字符串切割成序列,假设不提供切割符,程序将会把全部空格作为分隔符.

#按空格拆分成4个单词,返回list
s = 'please use the Python!'
li = s.split()
print li
print '1+2+3+4+5'.split('+')
#输出
['please', 'use', 'the', 'Python!']
['1', '2', '3', '4', '5']

        strip()

        去掉开头和结尾的空格键(两側且不包括内部),S.strip([chars])能够去除指定字符.而函数lstrip()去除字符串最開始的全部空格,rstrip()去除字符串最尾部的全部空格.

        replace()

        该方法返回某字符串的全部匹配项均被替换后得到字符串,如文字处理程序中"查找并替换"功能.

        translate()

        该方法和replace一样,能够替换字符串中某部分,但与前者的差别是translate仅仅处理单个字符,它的优势在于能够同一时候替换多个,有时候效率比replace高.

        如:s='eastmount' s1=s.replace('e','E') => 替换后'Eastmount'

        字符串推断方法

        isalnum()推断是否都是有效字符(字母+数字),如推断password帐号,输出Ture\False.

        isalpha()推断是否是字母

        isdigit()推断是否是数字

        islower()推断是否全是小写

        isupper()推断是否全是大写

        isspace()推断是否是空格(' ')

        lower()

        该方法返回字符串的小写字母版,在推断username不区分大写和小写时使用.upper()转换为大写,title()函数将字符串转换为标题——全部单词的首字母大写,而其它字母小写,可是它使用的单词划分方法可能会得到不自然的结果.

s = 'this is a good idea'
s1 = s.upper()
print s1
s2 = s.title()
print s2 #输出
THIS IS A GOOD IDEA
This Is A Good Idea

       PS:我主要是通过《Python基础教程》和"51CTO学院 智普教育的python视频"学习.所以文中引用了非常多视频中的知识、书籍知识和自己的知识,感谢那些作者和老师,希望文章对大家有所帮助,才開始学习python知识,假设文章中有错误或不足之处,还请海涵,也希望大家提出意见与君共勉.勿喷~

        (By:Eastmount 2014-9-28 中午11点 原创CSDN http://blog.csdn.net/eastmount/)

版权声明:本文博客原创文章。博客,未经同意,不得转载。

[Python学习] 模块三.基本字符串的更多相关文章

  1. python学习第三次记录

    python学习第三次记录 python中常用的数据类型: 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数 ...

  2. Python 学习 第三天 课后总结:

    PYTHON学习第三天课后总结: 1,注释:就是对代码起到说明注解的作用.   注释分为单行注释与多行注释.  单行注释:只注释一行代码在需要注释的所在行的行首使用#号来注释此行,注意#与代码之间需要 ...

  3. 【python学习笔记】3.字符串使用

    [python学习笔记]3.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...

  4. Python学习(三) 八大排序算法的实现(下)

    本文Python实现了插入排序.基数排序.希尔排序.冒泡排序.高速排序.直接选择排序.堆排序.归并排序的后面四种. 上篇:Python学习(三) 八大排序算法的实现(上) 1.高速排序 描写叙述 通过 ...

  5. Python学习-第三天-面向对象编程基础

    Python学习-第三天-面向对象编程基础 类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例.这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的 ...

  6. Python学习笔记三:模块

    一:模块 一个模块就是一个py文件,里面定义了一些业务函数.引用模块,可以用import语句导入.导入模块后,通过 模块.函数名(参数)  来使用模块中的函数.如果存在多个同名模块,则前面模块名需要加 ...

  7. python 学习(三)

    按照上次python 学习(二)的思路,第一步要实现从一个网站的页面上自动获取指定列表中的信息.折腾数日,得到一段可以正常运行的代码,如下: #web2.py import re import url ...

  8. python学习------模块

    模块(modue)的概念 在计算机程序开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件 ...

  9. Python学习(8)字符串

    目录 Python 字符串 Python 访问字符串中的值 Python 字符串更新 Python 转义字符 Python 字符串运算符 Python 字符串格式化 Python 三引号 Unicod ...

随机推荐

  1. 第一章 andrid visdio 安装

    第一章   andrid visdio 安装与环境搭建 一.Android Studio简介 Android Studio是Google新发布的Android应用程序开发环境,Android Stud ...

  2. 《JavaScript设计模式与开发实践》读书笔记之观察者模式

    1.观察者模式 观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知. JavaScript中通常采用事件模型替代传统的观察者模式 1.1 逐步实现观 ...

  3. What the difference between rebuild index and re-organize index?

    avg_fragmentation_in_percent value Corrective statement > 5% and < = 30% ALTER INDEX REORGANIZ ...

  4. windows phone (17) ManipulationDelta事件

    原文:windows phone (17) ManipulationDelta事件 ManipulationDelta事件会是在触摸位置发生变化是引发,比如可以根据用户在触摸屏中移动的位置,图片发生相 ...

  5. python学习笔记之十:文件和素材

    这里将介绍函数和对象--文件和流,让你在程序调用期间存储数据,并且可以处理来自其他程序的数据. 一. 打开文件 1.1 open函数 open函数用来打开文件,语法如下:open(name,[.mod ...

  6. POJ 1324 Holedox Moving 搜索

    题目地址: http://poj.org/problem?id=1324 优先队列---A*的估价函数不能为蛇头到(1,1)的距离,这样会出错. 看了discuss,有大神说这题A*的估价函数为BFS ...

  7. USACO sprime

    /* ID:kevin_s1 PROG:sprime LANG:C++ */ //N = 1仅仅可能为2,3,5,7.N > 1仅仅可能为1,3,7.9. N = i,到N = i + 1递推假 ...

  8. 【SICP读书笔记(三)】练习2.18 --- 表序列的reverse方法

    来自练习2.18 请定义出过程reverse,它以一个表为参数,返回的表中所包含的元素与参数表相同,但排列顺序与参数表相反: (reverse (list 1 4 9 16 25)) (25 16 9 ...

  9. poj 3414 Pots (bfs+线索)

    Pots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10071   Accepted: 4237   Special J ...

  10. React Native是一套使用 React 构建 Native app 的编程框架

    React Native是一套使用 React 构建 Native app 的编程框架 React Native at first sight what is React Native? 跟据官方的描 ...