Python学习笔记:字符串(str)基本内容

1.创建字符串。

创建字符串就跟创建变量一样很简单。使用引号将字符串内容包含起来就好,可以用单引号,双引号,三引号。

>>> S = 'abc'
>>> S
'abc'
>>> S = "abc"
>>> S
'abc'
>>> S = """abc"""
>>> S
'abc'

使用单引号的时候,内容可以包含双引号,反之使用双引号时,内容一刻包含单引号,也就是说引号可以交替使用。

>>> S = 'abc"d'
>>> S
'abc"d'
>>> S = "abc'd"
>>> S
"abc'd"
>>> S = 'abc'd'
SyntaxError: invalid syntax
>>> S = "abc"d"
SyntaxError: invalid syntax

使用三引号时,单引号自动转义输出,三引号可以换行操作。

>>> S = """
a
b
c
"""
>>> S
'\na\nb\nc\n'  #直接输出时,转义字符 不实现。
>>> print(S)

a
b
c

>>> S = """abc'd   abc"abc"""   
>>> S
'abc\'d   abc"abc'<span style="white-space:pre">	#直接输出时,单引号以转义字符的形式输出
>>> print(S)
abc'd   abc"abc



2.使用字符串。

跟其他序列一样,字符串使用切片索引就好了。但是字符串不能修改

>>> S = 'abc'
>>> S[0]
'a'
>>> S[0] = 'b'   #试图修改报错。
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    S[0] = 'b'
TypeError: 'str' object does not support item assignment


切片。

>>> S = 'abcdef'
>>> S
'abcdef'
>>> S[1:3]
'bc'
>>> S[5:1:-2]
'fd'
>>> S[1:3:2]
'b'

其他都跟列表,元组类似,在此不更多叙述。


3.用 ‘ + ’ 更改字符串。

字符串不能够修改,但是非要改变其中的内容也是可以实现的,就是使用‘ +   ’ 来更改字符串。

>>> S = 'abcdef'
>>> S
'abcdef'
>>> S = S[1:] + 'python'  #用 1 后面的内容加上新的内容,包含 1 。
>>> S
'bcdefpython'
>>> S = 'abcdef'
>>> S
'abcdef'
>>> S = S[:2] + 'python' #用 2 之前的内容加上新的内容 ,不包含 2 。
>>> S
>>>'abpython'
>>> S = 'abcdef'
>>> S
'abcdef'
>>> S = S[:] + 'python'		#没有参数的话直接在最后加上新内容
>>> S
'abcdefpython'




关于切片时,包含不包含 ‘ : ’之前或者之后的坐标元素,貌似有点老生常谈了,以后不再叙述。(包含‘ : ’之前的坐标元素,不包含‘ : ’之后的坐标元素)

如果有步进值的话,就是保留相应的元素,然后再加上新的内容。

>>> S = 'abcdef'
>>> S
'abcdef'
>>> S = S[1:3:2] + 'python'
>>> S
'bpython'
>>> S = 'abcdef'
>>> S
'abcdef'
>>> S = S[1:4:2] + 'python'
>>> S
'bdpython'



4.删除字符串。

由于字符串是不能变得,所以不可能只删除一个元素,只能是清除一个字符串的内容,然后重新赋值。或者是把不需要的元素剔除后再重新组成一个字符串。

给字符串赋空值来清空。此时字符串的存在,输出为空。

>>> S = 'abc'
>>> S
'abc'
>>> S = ''
>>> S
''
>>> S = 'bcd'
>>> S
'bcd'


用del 删除字符串,此时字符串不存在了 ,再次输出会报错。
>>> S = 'abc'
>>> S
'abc'
>>> del S
>>> S
Traceback (most recent call last):
  File "<pyshell#70>", line 1, in <module>
    S
NameError: name 'S' is not defined


试图用 del 删除单个元素,报错。
>>> S = 'abc'
>>> S
'abc'
>>> S[0]
'a'
>>> del S[0]
Traceback (most recent call last):
  File "<pyshell#74>", line 1, in <module>
    del S[0]
TypeError: 'str' object doesn't support item deletion


如果只想剔除其中的一个元素,那么需要先剔除后再重新组成一个字符串。

例如:如果想剔除Hello World 中的W  可以这样做。

>>> S = 'Hello World'
>>> S
'Hello World'
>>> S = S[:6] + S[7:]
>>> S
'Hello orld'



5.字符串 ‘  +  ’  ‘    *’操作。

Easy。

>>> S = S[:6] + S[7:]
>>> S
'Hello orld'
>>> S = 'Hello World'
>>> S
'Hello World'
>>> S + S
'Hello WorldHello World'
>>> S*3
'Hello WorldHello WorldHello World'    


都返回的是副本的操作,不改变原本S的值,如果想改变S,则需要 等号 重新赋值即可。

>>> S = 'Hello World'
>>> S
'Hello World'
>>> S + S
'Hello WorldHello World'
>>> S    <span style="white-space:pre">		#原本S没有改变
'Hello World'
>>> S = S + S   <span style="white-space:pre">	#原本S改变了
>>> S
'Hello WorldHello World'




6.成员操作符。

在序列中可以使用成员操作符,字符串也是如此。

in , not  in。顾名思义,用来判断是否存在某个元素,返回布尔值,True或者False。

>>> S = 'abc'
>>> S
'abc'
>>> 'a' in S
True
>>> 'A' in S
False
>>> 'A' not in S
True
>>> 'ab' in S
True
>>> 'ac' in S
False


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python学习笔记|字符串与正则表达式练习题答案 1. 练习题1: 题目:给定一个字符串s,找出其中的连续的最长的数字串。 答案:可以通过正则表达式来匹配数字串,然后使用max函数找出最长的。 代码示例: import re def find_longest_num_str(s): num_str_list = re.findall('\d+', s) longest_str = max(num_str_list, key=len) return longest_str s = "ab1234c56789def" print(find_longest_num_str(s)) 输出:56789 2. 练习题2: 题目:给定一个字符串s,将其中的每个空格替换为"%20"。 答案:可以通过正则表达式的sub函数来实现替换。 代码示例: import re def replace_space(s): new_s = re.sub(' ', '%20', s) return new_s s = "Hello World" print(replace_space(s)) 输出:Hello%20World 3. 练习题3: 题目:给定一个字符串s,判断它是否为回文字符串。 答案:可以使用切片操作将字符串反转,然后与原字符串进行比较。 代码示例: def is_palindrome(s): return s == s[::-1] s = "abcba" print(is_palindrome(s)) 输出:True ### 回答2: 以下是关于字符串和正则表达式练习题的答案: 1. 给定一个字符串s,编写一个函数,返回该字符串的反转字符串。 def reverse_string(s): return s[::-1] 2. 给定一个字符串s,编写一个函数,返回是否是回文字符串。 def is_palindrome(s): return s == s[::-1] 3. 给定一个字符串s和一个字符c,编写一个函数,返回字符串s中字符c的出现次数。 def count_char(s, c): return s.count(c) 4. 给定一个字符串s,编写一个函数,返回字符串s中的所有单词列表。 def split_words(s): return s.split() 5. 给定一个字符串s,编写一个函数,返回字符串s中的所有数字列表。 import re def extract_numbers(s): return re.findall(r'\d+', s) 这只是一些可能的答案,其中的解决方法可以有很多种。每个问题都有不同的解决方案,具体取决于个人的编程风格和需求。希望这些答案能够帮助你理解和学习Python中的字符串和正则表达式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值