美文网首页Python3.5 笔记
Python3.5 笔记——第4章 字符串

Python3.5 笔记——第4章 字符串

作者: 行者无疆_1024 | 来源:发表于2018-08-02 00:25 被阅读0次

    Python3.5 笔记

    第四章 字符串

    基本操作

    字符串是不可改变的。字符串的定义直接用引号就可以了,跟java一样。

    str = "hello python"
    
    

    字符串、列表、元组都是序列中的一种,所有标准序列操作对字符串同样适用。

    不过字符串是不可变的,所以字符串做不了分片赋值。

    print(str[0:5])
    str[0:5] = "python" #字符串是不可变的
    print(str)
    

    输出

    hello
    Traceback (most recent call last):
      File "D:/pyspace/hellopython/Chapter4.py", line 3, in <module>
        str[0:5] = "python"
    TypeError: 'str' object does not support item assignment
    

    转义符

    Python中的转义符也是通过\开头。比如:\n代表换行,'代表单引号等。

    print("hello\nPython")#换行
    print("\'")
    print("\\")
    print("\"")
    print("\a")#打出来的不知道是什么玩意,书里叫响铃
    
    hello
    Python
    '
    \
    "
    �
    

    除此之外还有以下转义符

    转义字符 描述 转义字符 描述
    \(在行尾时) 续行符 \n 换行
    \\ 反斜杠符号 \v 纵向制表符
    \' 单引号 \t 横向制表符
    \" 双引号 \r 回车
    \a 响铃 \f 换页
    \b 退格 \oyy 八进制数,yy代表字符
    \e 转义 \xyy 十六进制数,yy代表字符
    \000 空格 \other 其他字符以普通格式输出

    字符串格式化

    字符串格式化符号

    字符串格式化使用操作符号百分号(%)实现。%也可以用作模运算(求余)操作符。字符串格式化符号通俗的理解就是占位符,类似于sql中的?。格式如下:

    %typeStrA%StrB
    

    其中第一个%处是要插入的位置,StrA代表原字符串,第二个%右边的StrB代表要插入的字符串。

    print("字符串格式化")
    print("小明今年%s岁了"%"10")
    

    输出

    字符串格式化
    小明今年10岁了
    

    其他还有一些常用的格式化符号,参见下表格

    符号 描述 符号 描述
    %c 格式化字符及其ASCII码 %f 格式化浮点数字,可指定精度
    %s 格式化字符串 %e 用科学计数法格式化浮点数
    %d 格式化正数 %E 作用同%e,用科学计数法格式化浮点数

    %f可指定精度值,在Python中,使用%f时,若不指定精度,则默认输出为6位小数,指定精度的格式为一个英文格式下的句点加上希望保留的小数位数,示例如下:

    %.2f
    
    print("圆周率PI的值为:%f"%3.14)
    print("圆周率PI的值为:%.2f"%3.14)
    

    输出

    圆周率PI的值为:3.140000
    圆周率PI的值为:3.14
    

    如果要输出%,有两种方式,第一种方式为直接使用加号加一个百分号

    print("小明今年的成绩比去年提高了%.2f"%1.23 + "%")
    
    小明今年的成绩比去年提高了1.23%
    

    第二种方式格式化%,即用两个百分号输出,%%

    print("小明今年的成绩比去年提高了%.2f%%"%1.23)
    
    小明今年的成绩比去年提高了1.23%
    

    字符串格式化元组

    格式化操作符的右操作可以是任何元素。如果右操作数是元组,其中每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。在有多个占位符的字符串中,可以使用元组传入多个格式化值。如果需要转换的元组作为转换表达式的一部分存在,就必须将它用圆括号括起来,否则会出错。

    print("今年是%d年世界杯,%s队夺得了冠军,最佳射手是%s,一共进了%d个球"%(2018,'法国',"卡恩",6))
    print("今年是%d年世界杯,%s队夺得了冠军,最佳射手是%s,一共进了%d个球"%2018,'法国',"卡恩",6)
    
    今年是2018年世界杯,法国队夺得了冠军,最佳射手是卡恩,一共进了6个球
    Traceback (most recent call last):
      File "D:/pyspace/hellopython/Chapter4.py", line 22, in <module>
        print("今年是%d年世界杯,%s队夺得了冠军,最佳射手是%s,一共进了%d个球"%2018,'法国',"卡恩",6)
    TypeError: not enough arguments for format string
    

    宽度和精度

    字符宽度是转换后的值所保留的最小字符个数,精度是数字转换后结果中应该包含的小数位数,或字符串转换后的值所能包含的最大字符个数。如果是*,则代表值从元组中获取。

    print("圆周率PI的值为:%10f"%3.141593) #字符串的宽度是10,占位的字符串长度只有8,在字符串前面补2个空格
    print("圆周率PI的值为:%10.2f"%3.141593) #字符串的宽度是10,占位的字符串长度只有4,在字符串前面补6个空格
    print("圆周率PI的值为:%.2f"%3.141593) #保留2位小数
    print("圆周率PI的值为:%.2f"%3.145593) #保留2位小数,会四舍五入
    print("字符串精度获取%.5s" % "hello world") #字符串前5个字符
    print("字符串精度获取%*.*s" % (10,5,"hello world")) #*代表值从元组中获取,输出长度是10精度是5的字符串
    print("圆周率PI的值为:%+.2f"%-3.141593) #数字对齐,无论正负都输出符号
    print("圆周率PI的值为:%+.2f"%3.141593) #数字对齐,无论正负都输出符号
    

    输出:

    圆周率PI的值为:  3.141593
    圆周率PI的值为:      3.14
    圆周率PI的值为:3.14
    圆周率PI的值为:3.15
    字符串精度获取hello
    字符串精度获取     hello
    圆周率PI的值为:-3.14
    圆周率PI的值为:+3.14
    

    字符串方法

    find()

    find()方法用于返回要查找的字符串在被检测的字符串中的索引位置,如果存在的话,则返回结果为字符串所在位置的最左端索引,如果不存在的话则返回-1。find()方法还可以指定被检测字符串的开始和结束位置。默认是从0到结尾。语法格式如下:

    str.find(searchStr,beg=0,end=len(str))
    

    实例:

    field = "do it now"
    print(field.find("no"))
    print(field.find("it",0,5))
    print(field.find("it",0,4))
    print(field.find("python"))
    

    输出:

    6
    3
    -1
    -1
    
    join()

    jion()方法用于将序列中的元素以指定的字符,重新连接生成一个新的字符串。

    语法格式如下:

    str.join(sequence)
    

    str是指定的连接字符串,sequence指定检索的字符串序列。返回结果是重新连接后生成的新的字符串。

    实例:

    field = "","home","data","hdfs"
    print("/".join(field))
    field = "","just","do","it"
    print("/".join(field))
    

    输出:

    /home/data/hdfs
    /just/do/it
    
    lower()

    lower()方法用于将字符串中的所有大写字符转换成小写。如果已经是小写,则仍保持原状。语法如下:

    str.lower()
    

    实例:

    field = "JUST,DO,IT"
    print(field.lower())
    

    输出:

    just,do,it
    
    upper()

    upper()方法用于将字符串中的所有小写字符转换成大写。如果已经是大写,则仍保持原状。语法如下:

    str.upper()
    

    实例:

    field = "just,do,it"
    print(field.upper())
    print(field.upper().find("IT"))
    

    输出:

    JUST,DO,IT
    8
    
    swapcase()

    swapcase()方法用于对字符串的大小写进行转换,将字符串中大写转换为小写,小写转换为大写。语法格式如下:

    str.swapcase()
    

    实例:

    field = "Just,Do,It"
    print(field.swapcase())
    

    输出:

    jUST,dO,iT
    
    replace()方法

    replace()方法把字符串中的old字符串,替换成new字符串,并且可以指定一共替换的最大次数。语法格式如下:

    str.replace(old,new,max)
    

    实例:

    field = "just do it"
    print(field.replace("it","it,do it now"))
    print(field.replace("t","T",1))
    

    输出:

    just do it,do it now
    jusT do it
    
    split()方法

    split()方法用于按照指定的分隔符,将字符串进行分割,并返回分割后的列表。默认的分隔符为空格,同时可以指定最大分割次数。语法格式如下:

    str.split("分隔符",最大分割次数)
    

    实例:

    field = "just do it"
    print(field.split())#返回分割后的列表,默认分隔符是空格
    field = "just|do|it"
    print(field.split("|"))
    print(field.split("|",1))#指定最大分割字数
    

    输出:

    ['just', 'do', 'it']
    ['just', 'do', 'it']
    ['just', 'do|it']
    
    strip()

    strip()方法用于移除字符串头尾的指定字符(默认为空格)。格式如下:

    str.strip('指定的字符')
    

    实例:

    field = " just do it "
    print(field.strip())
    field = "-just do it-"
    print(field.strip("-"))
    

    输出:

    just do it
    just do it
    
    translate()

    translate()方法根据参数table表转换字符串的字符,将要过滤的字符放到del参数中。语法格式如下:

    str.translate(table)
    

    实例:

    field = " just do it "
    intab = "abcde"
    outtab = "12345"
    transtab = field.maketrans(intab,outtab)
    print(field.translate(transtab))
    

    输出:

     just 4o it 
    

    习题

    #习题:小智的智商去年是100,今年是132.问:今年比去年提高了多少。
    #要求:用字符串格式化显示输出"xx.x%"的形式,保留一位小数
    print("--------------习题----------------")
    print("小智的智商比去年提高了%.1f%%"%((132-100)/100*100))
    

    输出:

    小智的智商比去年提高了32.0%
    

    相关文章

      网友评论

        本文标题:Python3.5 笔记——第4章 字符串

        本文链接:https://www.haomeiwen.com/subject/tcidvftx.html