博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 字符串
阅读量:4330 次
发布时间:2019-06-06

本文共 6300 字,大约阅读时间需要 21 分钟。

1、字符编码

  一个字节8个比特位(bit)

(1)、ASCII---美国,ASCII占用一个字节

    字符串  十进制  十六进制

    '0'    48    0x30

    'A'    65    0x41

    'a'    97    0x61

(2)、GB2312--简体中文   

big--繁体中文,一个中文字符占用3个字节,各国有各国的标准,就会出现不可避免的冲突,结果就是在多种语言混合的 文本分钟,会显示出乱码。

(3)、Unicode--统一码、万国码

使用16或32位的十六进制字面值(分别加上\u或\U)或者使用字符的Unicode字符名称(\N{name})

(每国语言的每个字符 设定统一并且唯一的二进制编码),

    \uxxxx 16位(bit)-2字节Unicode编码
    \Uxxxxxxxx 32位

python字符串默认使用Unicode编码表示文本,

Ubicode编码通常是2个字节,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。
(4)、UTF-8编码
UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

 

十进制:2;45;94641

八进制:0o177(127);0o11(9)

十六进制:0x11(17);0xFF  (255);

二进制:0b111;0b101

2、函数的使用

1、python的字符串是不可以改变的字符序列

1、a,b = 1,2 #交叉赋值,所以交换a,b的数据不需要再创建一个变量

3、is  / is not  判断两个对象是否是同一个对象,如果是返回True,否则返回False

3、in  / not in  判断字符串是否在,返回True or False

 

3、字符串的切片  字符串序列[(开始索引a):(结束索引b)(:(步长s))]  #不包括结束索引b

3、print(1,2,3,end=''),  end:输出完毕后在末尾自动追加一个字符串,print()中默认end=('/n')所以print函数会换行,我们用end=' '可以让结果的结尾避免换行,通常用来避免不同print之间的换行

3、print(1,2,3,sep='*'),  sep:分隔号*,往可迭代对象中插入分隔符

1 print(1,2,3,sep = "*")  #1*2*32 print("我爱","我自己",sep="*")   #我爱*我自己
print(a,b,sep="*")

3、id(ibj)  返回一个对象在内存中的地址

2、del 变量名; 删除变量,删除与对象的关联关系,可能释放对象

2、bool(obj)返回Ture 或者 Flase

3、len(x)  求序列的长度

3、abs(x)绝对值

3、pass  通常用来避免空白,pass语句通常称之为空语句

3、None 空值 用来占位;用来解除变量;常见的空值有 0, 0.0, 0j, ''空字符串,[]空列表,()空元组,{}空字典

3、运算符 +; -; *; /; //地板除,结果去除小数取整; **幂运算;%求余 

4、round(number,ndigits=0)对number进行四舍五入,ndigits是小数点向右取整的位数,负数表示先左取整的位数

5、pow(x,t,z)相当于x**y或者x**y%z

1、complex(a,b)可以用数字创建一个复数  (a+bj)

6、help(函数)函数查看文档

7、%占位符  print("我叫%s,年龄%d"%("LXP-Never",23))

8、input()  以'字符串'的形式获取用户输入

3、list()  创建空列表或L = []  list(range()) 用可迭代对象创建一个列表

9、help('_main_')  在交互模式在查看当前作用域的所有变量  退出键:q

9、str()  字符串构造函数

str(123)#结果#‘123’
str()

10、原始字符串

作用:原始字符串能够让字符串中的每一个字符都保持原样,让转义字符\无效,但是原始字符串不能以单个反斜杠结尾

格式:r'字符串内容'

但是如果字符串最后一个就是\,该如何显示呢?下面的代码会给出答案

1 #Author:凌逆战 2 s = 'C:\newfile\test.py' 3 print(s) 4 #C: 5 #ewfile    est.py 6 print(len(s))   # 16 7 s = r'C:\newfile\test.py' 8 print(s)    # C:\newfile\test.py 9 print(len(s))   # 1810 11 print(r'C:\Program Files\foo\bar' '\\') # C:\Program Files\foo\bar\
row

10、字符串编码转换成数字:

  ord(alphabet)  返回一个字符的ASCII值或者Unicode值

  chr(number)  返回i(0~255内)这个整数值所对应的字符,i可以是十进制,也可以是十六进制0x.

  整数转换成字符串函数:

  bin()  将整数转换成二进制字符串

  orc()  将整数转换成八进制字符串

  hex()  将整数转换成十六进制字符串

1、转义字符:

  \' 单引号(')

  \" 双引号(")
  \\ 一个反斜杠
  \n 换行
  \r 返回光标至行首
  \t 水平制表符
  \v 垂直制表符
  \f 换页
  \b 倒退
  \0 空字符,字符值为零
  \xXX XX为两位十六进制表示的字符
  \uXXXX XXXX为四个十六进制表示的Unicode16字符
  \UXXXXXXXX 8个十六进制表示的Unicode32字符

  这些转义字符要在" "字符串中打印

3、字符串format函数的使用

 

from math import *print("hello,%s"%('凌逆战'))   # hello,凌逆战print('{},{},{}'.format("孙悟空", '猪八戒', '沙悟净'))   # 孙悟空,猪八戒,沙悟净print('{0},{1},{2}'.format("孙悟空", '猪八戒', '沙悟净'))    # 孙悟空,猪八戒,沙悟净print('{1},{0},{2}'.format("孙悟空", '猪八戒', '沙悟净'))    # 猪八戒,孙悟空,沙悟净print('{1},{0},{2},{0}'.format("孙悟空", '猪八戒', '沙悟净'))    # 猪八戒,孙悟空,沙悟净,孙悟空# 命名参数和未命名参数混合使用print("{foo} {} {bar} {}".format(1, 2, bar=4, foo=3))   # 3 1 4 2print("{foo} {1} {bar} {0}".format(1, 2, bar=4, foo=3))      # 3 2 4 1# 精度print('{name}的值是 {value}'.format(value=pi, name='π'))   # π的值是 3.141592653589793print('{name}的值是 {value:.2f}'.format(value=pi, name='π'))   # π的值是 3.14,如果不.2f,默认保留6位,# 将数字作为浮点数进行处理#字符串格式设置print("{num:b}".format(num=42)) # 101010    # 将数字作为二进制数进行处理print("{num:c}".format(num=65)) # A     # 将整数转换成Unicode编码print("{num:d}".format(num=65)) # 65    # 十进制print("{num:e}".format(num=65)) # 6.500000e+01  # 科学计数法print("{num:.2%}".format(num=0.65)) # 65.00%    # *100百分号表示# 宽度print("{num:10}".format(num=3)) #          3    # 宽度10,数字右对齐print("{name:10}".format(name="Bob"))   # Bob   # 宽度10,字符串左对齐print("{pi:10.2f}".format(pi=pi))   #       3.14    # .号左边是宽度,右边是精度print("{:.5}".format("Guido van Rossum"))   # Guido # 也可指定其他类型的精度print('One googol is {:,}'.format(100000))  # One googol is 100,000 # 千位分隔符# print(f'e的值为{e}')   # 在python 3.6中 e的值为2.787948764# 下述三个标志(s、r和a)指定分别使用str、repr和ascii进行转换print("{pi!s} {pi!r} {pi!a}".format(pi="π"))    # π 'π' '\u03c0'

 

 

 

1、符号、对齐、填充

在指定的宽度和精度前面可以添加一个标志,标志可以是

零、加号、减号、空格填充字符串

默认的填充是空格,但也能使用填充字符$来填充

1 print('{:010.2f}'.format(pi))   # 0000003.142 print('{:+10.2f}'.format(pi))   #      +3.143 print('{:-10.2f}'.format(pi))   #       3.144 print('{: 10.2f}'.format(pi))   #       3.145 print('{:$^10.2f}'.format(pi))  # $$$3.14$$$
填充

左对齐、右对齐和居中,分别使用<、>和^

1 print('{0:<10.2f}\n{0:^10.2f}\n{0:>10.2f}'.format(pi))2 # 3.14      3 #    3.14   4 #       3.14
对齐方式

4、字符串的方法

  对象.方法(方法传参)

假设字符串的变量名为s

方法 说明

'+'.join('1234')

将字符串'+'插入含字符串的可迭代对象(列表、元组、字符串),返回字符串  1+2+3+4

'1+2+3+4'.split('+')

将字符串按指定字符拆分,返回列表  ['1', '2', '3', '4']

S.isdigit()

判断字符串中的字符是否全为数字

S.isalpha()

判断字符串是否全为英文字母

S.islower()

判断字符串所有字符是否全为小写英文字母

S.lower()

生成将英文转换为小写的字符串

S.isupper()

判断字符串所有字符是否全为大写英文字母

S.upper()

生成将英文转换为大写的字符串

S.isspace()

判断字符串是否全为空白字符

S.center(width[,fill])

将原字符串居中,width是字符串的总宽度,fill是填充字符,默认是空格

S.count(sub[, start[,end]])

获取一个字符在字符串中的个数

S.find(sub[, start[,end]])

获取字符串中子串sub的索引,失败返回-1

S.index(sub)

返回一个字符在字符串中的索引,若没有,会报一个异常

S.strip()

返回去掉左右空白字符的字符串

'*** SPM * eve!!! ***'.strip(' *!')

能删除字符串左右两边的指定字符。  # SPM * eve

S.lstrip() / S.rstrip()

返回去掉左侧空白字符的字符串 / 返回去掉右侧空白字符的字符串

S.replace(old, new[, count])

将原字符串的old用new代替,生成一个新的字符串

S.startswith(prefix[, start[, end]])

返回S是否是以prefix开头,如果以prefix开头返回True,否则返回False,

S.endswith(suffix[, start[, end]])

返回S是否是以suffix结尾,如果以suffix结尾返回True,否则返回False

以下是不常用的

 

S.title()

生成每个英文单词的首字母大写字符串

S.isnumeric()

判断字符串是否全为数字字符

 

1、注释:单行注释#,多行注释'''     '''或者"""    """。

  三单/双引号还可用于打印多行内容,x = '''    '''。

2、range()函数  用来创建一个生成一系列整数的可迭代对象(整数序列生成器),range函数的返回值可用于for语句来一次迭代输出整数,生成的是数字序列

  range(start,stop) 从start开始,到stop,但是不包括stop,可以取步长

3、列表可以嵌套列表    L = [1, 2, [3.1, 3.2, 3.3], 4]

  列表会把字符串分开来,  L = list("hello")  # L = ['h', 'e', 'l', 'l', 'o']

  列表可以用运算符(+ - * )进行拼接、重复

4、重复要做的事放在循环内

5、for 循环中else 语句,是执行完for语句之后,再执行else中的代码

6、str和repr。str能够转换成用户能看懂的字符串;repr能够获得合法的python表达式

1 print(repr("Hello,\nWorld"))2 # 'Hello,\nWorld'3 print(str('Hello,\nWorld'))4 # Hello,5 # World
str\repr

 

复习:

方法一:  if not name:   # 如果name有值则为真,not name 就是假,那么如果name是空,那么就是假,not name 就是真

        break
方法二:  if name == ' ':  #如果名字为空,结束输入操作,
        break

 

转载于:https://www.cnblogs.com/LXP-Never/p/9275862.html

你可能感兴趣的文章
excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法
查看>>
响应式web设计之CSS3 Media Queries
查看>>
实验三
查看>>
机器码和字节码
查看>>
环形菜单的实现
查看>>
【解决Chrome浏览器和IE浏览器上传附件兼容的问题 -- Chrome关闭flash后,uploadify插件不可用的解决办法】...
查看>>
34 帧动画
查看>>
二次剩余及欧拉准则
查看>>
Centos 7 Mysql 最大连接数超了问题解决
查看>>
thymeleaf 自定义标签
查看>>
关于WordCount的作业
查看>>
C6748和音频ADC连接时候的TDM以及I2S格式问题
查看>>
UIView的layoutSubviews,initWithFrame,initWithCoder方法
查看>>
STM32+IAP方案 实现网络升级应用固件
查看>>
用74HC165读8个按键状态
查看>>
jpg转bmp(使用libjpeg)
查看>>
linear-gradient常用实现效果
查看>>
sql语言的一大类 DML 数据的操纵语言
查看>>
VMware黑屏解决方法
查看>>
JS中各种跳转解析
查看>>