“Python字符串类型及其操作”的版本间的差异
来自CloudWiki
(创建页面,内容为“==字符串类型的表示== *字符串是字符的序列,表示快有一对单引号,双引号或三引号构成。其中单引号和双引号都可以表示单…”) |
|||
(未显示同一用户的11个中间版本) | |||
第5行: | 第5行: | ||
>>> print(name) | >>> print(name) | ||
abc | abc | ||
− | >>> | + | >>> print('这是“泉城”济南') |
− | + | 这是“泉城”济南 | |
− | + | >>> print("这是'泉城'济南") | |
+ | 这是'泉城'济南 | ||
*input( )函数将用户输入的内容当作一个字符串类型,这是获得用户输入的常用方式。 | *input( )函数将用户输入的内容当作一个字符串类型,这是获得用户输入的常用方式。 | ||
*print( )函数可以直接打印字符串,这是输出字符串的常用方式。如: | *print( )函数可以直接打印字符串,这是输出字符串的常用方式。如: | ||
第37行: | 第38行: | ||
Python | Python | ||
语言 程序 设计 | 语言 程序 设计 | ||
+ | ==基本的字符串操作符== | ||
+ | *python提供了五个字符串的基本操作符,如: | ||
+ | ===x+y=== | ||
+ | *Python字符串支持加法运算符,表示两个字符串连接,生成新字符串。 | ||
+ | >>> 'hello ' + 'world' | ||
+ | 'hello world' | ||
+ | ===x in s === | ||
+ | *成员判断,关键字in | ||
+ | >>> "a" in "abcde" #测试一个字符中是否存在于另一个字符串中 | ||
+ | True | ||
+ | >>> 'ab' in 'abcde' | ||
+ | True | ||
+ | >>> 'ac' in 'abcde' #关键字in左边的字符串作为一个整体对待 | ||
+ | False | ||
+ | >>> "j" in "abcde" | ||
+ | False | ||
+ | *例子: | ||
+ | NameList ="张明 王乐 刘全全 谭虎" | ||
+ | name = "王乐" | ||
+ | if "王乐" in NameList: | ||
+ | print(name+"没在名单之中") | ||
+ | else: | ||
+ | print(name+"在名单之中") | ||
+ | |||
+ | ===x * n 或 n * x === | ||
+ | *Python字符串支持与整数的乘法运算,表示序列重复,也就是字符串内容的重复,得到新字符串。 | ||
+ | >>> 'abcd' * 3 | ||
+ | 'abcdabcdabcd' | ||
+ | ===str[i]=== | ||
+ | *str[i],索引,表示第i个字符 | ||
+ | >>> name = input("请输入名称:") | ||
+ | 请输入姓名:山东商业职业技术学院 | ||
+ | >>> name[0] | ||
+ | '山' | ||
+ | ===str[N:M]=== | ||
+ | *str[N:M]切片,返回索引第N到M的子串,其中不包含M | ||
+ | *例:截取身份证号第X位数字 | ||
+ | >>> name = input("请输入名称:") | ||
+ | 请输入姓名:山东商业职业技术学院 | ||
+ | >>> name[2:4] | ||
+ | '商业' | ||
+ | >>> name[4:6] | ||
+ | '职业' | ||
+ | |||
+ | ==内置的字符串处理函数== | ||
+ | *python解释器提供了一些内置函数,处理字符串呢,非常方便。 | ||
+ | >>> x = 'Hello world.' | ||
+ | >>> len(x) #字符串长度 | ||
+ | 12 | ||
+ | >>> max(x) #最大字符 | ||
+ | 'w' | ||
+ | >>> min(x) | ||
+ | ' ' | ||
+ | *python3以Unicode为编码单位,因此中英文字符都是1个长度单位。 | ||
+ | *延伸阅读:https://baike.baidu.com/item/Unicode/750500?fr=aladdin | ||
+ | *16进制、八进制等的相互转换: | ||
+ | >>> x=7 | ||
+ | >>> bin(x) #返回整数x对应的二进制字符串型。 | ||
+ | '0b111' | ||
+ | >>> x= 11 | ||
+ | >>> hex(x)#返回整数x对应的16进制字符串型。 | ||
+ | '0xb' | ||
+ | >>> oct(x)#返回整数x对应的八进制字符串形式。 | ||
+ | '0o13' | ||
+ | >>> x=3.1415 | ||
+ | >>> str(x) #返回x的字符串形式。 | ||
+ | '3.1415' | ||
+ | >>> ord('a')#返回某个字符所表示的Unicode编码。 | ||
+ | 97 | ||
+ | >>> chr(97) 返回Unicode编码对应的单字符 | ||
+ | *例题:打印英文26个字母的Unicode编码 | ||
+ | <nowiki>str1='abcdefghijklmnopqrstuvwxyz' | ||
+ | for i in range(0,26): | ||
+ | print(ord(str1[i]))#打印26个字母对应的Unicode编码</nowiki> | ||
+ | |||
+ | *例题:凯撒编码 | ||
+ | *“恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。 | ||
+ | |||
+ | 初始源码:能处理26个字母除xyz以外的字符的加密 | ||
+ | <nowiki>plaincode = input("请输入明文: ") | ||
+ | for p in plaincode: | ||
+ | if ord("a") <= ord(p) <= ord("z"): | ||
+ | print(chr(ord("a") + (ord(p) - ord("a") + 3)),end='') #(ord(p) - ord("a") + 3)代表说a后面第几个字符 | ||
+ | else: | ||
+ | print(p, end='')</nowiki> | ||
+ | |||
+ | 改进源码:能处理所有26个字符的加密 | ||
+ | <nowiki>plaincode = input("请输入明文: ") | ||
+ | for p in plaincode: | ||
+ | if ord("a") <= ord(p) <= ord("z"): | ||
+ | print(chr(ord("a") + (ord(p) - ord("a") + 3)%26),end='') | ||
+ | else: | ||
+ | print(p, end='')</nowiki> | ||
+ | *练习:针对凯撒编码写一个解密程序 | ||
+ | *拓展:http://blog.csdn.net/by4_Luminous/article/details/53343780 | ||
+ | |||
+ | 下一节 [[Python字符串常用操作]] |
2018年12月14日 (五) 07:09的最新版本
目录
字符串类型的表示
- 字符串是字符的序列,表示快有一对单引号,双引号或三引号构成。其中单引号和双引号都可以表示单行字符串,三引号可以表示单行或者多行字符串。
- 打印字符串的python程序,运行结果如下,注意其中的引号部分。
>>> name = 'abc' >>> print(name) abc >>> print('这是“泉城”济南')
这是“泉城”济南 >>> print("这是'泉城'济南") 这是'泉城'济南
- input( )函数将用户输入的内容当作一个字符串类型,这是获得用户输入的常用方式。
- print( )函数可以直接打印字符串,这是输出字符串的常用方式。如:
>>> name = input("请输入名字: ") 请输入名字: Python语言 >>> print(name) Python语言 >>>
字符串的序号体系
- 字符串包括两种序号体系,正向递增序号和反向递减序号。
- 如果字符串长度为L,正向递增,序号以最左侧字符序号为零,向右依次递增,最右侧字符序号为L-1。反向递减虚号,以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L.
- Python字符串也提供区间访问方式,采用[N:M]格式,表示字符串中从n到m不包含m的子字符串。如果表示中M或者N索引缺失,则表示字符串把开始或结束索引值设为默认值。
>>> name = "Python语言程序设计" >>> print(name[0]) P >>> print(name[0],name[7],name[-1]) P 言 计 >>> print(name[2:-2]) thon语言程序 >>> print(name[:6]) Python >>> print(name[6:]) 语言程序设计 >>> print(name[:]) Python语言程序设计
- 反斜杠字符是一个特殊字符,在字符串中表示转义,即该字符与后面相邻的一个字符共同组成了新的含义。
>>> print("Python\n语言\t程序\t设计") Python 语言 程序 设计
基本的字符串操作符
- python提供了五个字符串的基本操作符,如:
x+y
- Python字符串支持加法运算符,表示两个字符串连接,生成新字符串。
>>> 'hello ' + 'world' 'hello world'
x in s
- 成员判断,关键字in
>>> "a" in "abcde" #测试一个字符中是否存在于另一个字符串中 True >>> 'ab' in 'abcde' True >>> 'ac' in 'abcde' #关键字in左边的字符串作为一个整体对待 False >>> "j" in "abcde" False
- 例子:
NameList ="张明 王乐 刘全全 谭虎" name = "王乐" if "王乐" in NameList: print(name+"没在名单之中") else: print(name+"在名单之中")
x * n 或 n * x
- Python字符串支持与整数的乘法运算,表示序列重复,也就是字符串内容的重复,得到新字符串。
>>> 'abcd' * 3 'abcdabcdabcd'
str[i]
- str[i],索引,表示第i个字符
>>> name = input("请输入名称:") 请输入姓名:山东商业职业技术学院 >>> name[0] '山'
str[N:M]
- str[N:M]切片,返回索引第N到M的子串,其中不包含M
- 例:截取身份证号第X位数字
>>> name = input("请输入名称:") 请输入姓名:山东商业职业技术学院 >>> name[2:4] '商业' >>> name[4:6] '职业'
内置的字符串处理函数
- python解释器提供了一些内置函数,处理字符串呢,非常方便。
>>> x = 'Hello world.' >>> len(x) #字符串长度 12 >>> max(x) #最大字符 'w' >>> min(x) ' '
- python3以Unicode为编码单位,因此中英文字符都是1个长度单位。
- 延伸阅读:https://baike.baidu.com/item/Unicode/750500?fr=aladdin
- 16进制、八进制等的相互转换:
>>> x=7 >>> bin(x) #返回整数x对应的二进制字符串型。 '0b111' >>> x= 11 >>> hex(x)#返回整数x对应的16进制字符串型。 '0xb' >>> oct(x)#返回整数x对应的八进制字符串形式。 '0o13' >>> x=3.1415 >>> str(x) #返回x的字符串形式。 '3.1415' >>> ord('a')#返回某个字符所表示的Unicode编码。 97 >>> chr(97) 返回Unicode编码对应的单字符
- 例题:打印英文26个字母的Unicode编码
str1='abcdefghijklmnopqrstuvwxyz' for i in range(0,26): print(ord(str1[i]))#打印26个字母对应的Unicode编码
- 例题:凯撒编码
- “恺撒密码”据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
初始源码:能处理26个字母除xyz以外的字符的加密
plaincode = input("请输入明文: ") for p in plaincode: if ord("a") <= ord(p) <= ord("z"): print(chr(ord("a") + (ord(p) - ord("a") + 3)),end='') #(ord(p) - ord("a") + 3)代表说a后面第几个字符 else: print(p, end='')
改进源码:能处理所有26个字符的加密
plaincode = input("请输入明文: ") for p in plaincode: if ord("a") <= ord(p) <= ord("z"): print(chr(ord("a") + (ord(p) - ord("a") + 3)%26),end='') else: print(p, end='')
- 练习:针对凯撒编码写一个解密程序
- 拓展:http://blog.csdn.net/by4_Luminous/article/details/53343780
下一节 Python字符串常用操作