1.字符串类型:

>>> s="早上好"               #str类型的字符串

>>> type(s)

<class 'str'>

>>> s=s.encode("utf-8")          #bytes类型的字符串

>>> type(s)                     #bytes类型主要用于网络传输和写入文件

<class 'bytes'>

>>> isinstance(s,bytes)            #判断字符串是否是bytes类型

True

>>> isinstance(s,str)              #判断字符串是否是str类型

False

>>> print(s)                     #打印bytes类型时,是有很多编码的

b'\xe6\x97\xa9\xe4\xb8\x8a\xe5\xa5\xbd'

>>> s=s.decode("utf-8")

>>> print(s)                     #打印str类型,可显示易于理解的样式

早上好

2.字符串地址

>>> s="a"                       #在python3中,如果字符串为英文且内容一样,那么

>>> id(s)                        #存储的地址也是一样,两个是同一个对象

2681370639976

>>> s1="a"

>>> id(s1)

2681370639976

>>> s is s1

True

>>> s="早上好"               #在python3中,如果字符串是中文的,且内容一样,

>>> id(s)                       #但是两者的id是不一样的,两者不是一个对象

2681370951376

>>> s1="早上好"

>>> id(s1)

2681370614152

>>> s is s1

False

>>> id(s1)                     #字符串是不可改变的,更改字符串后,会生成一个新的

2681370639976                 #字符串

>>> s=s+"*"

>>> id(s)

2681371662912

3.字符串定义

>>> s="早上好"              #双引号可定义字符串

>>> s

'早上好'

>>> s='早上好'               #单引号可定义字符串

>>> s

'早上好'

>>> s="""早上好"""           #3个双引号可定义字符串

>>> s

'早上好'

>>> s='''早上好'''              #3个单引号可定义字符串

>>> s

'早上好'

>>> s="She is a girl.\nHe is a boy.\nHe is a man"  #双引号默认单行输出文本

>>> print(s)                     #添加\n,可实现多行输出

She is a girl.

He is a boy.

He is a man

>>> s="a\tb\tc"                #\t是制表符

>>> print(s)

a       b       c             #一个\t默认是8个空格

几种定义字符串的区别:

>>> "He's a boy"               #双引号字符串中可包含单引号

"He's a boy"

>>> "'hi' is a word"

"'hi' is a word"

>>> "\"hi\" is a word"           #双引号中可包含双引号,需要加转义符\

'"hi" is a word'

>>> 'He's a boy'               #单引号字符串中不可包含单引号

File "<stdin>", line 1

'He's a boy'

^

SyntaxError: invalid syntax

>>> '"hi" is a word'             #单引号中可包含双引号

'"hi" is a word'

>>> s="""He                   #三引号(双引和单引)可实现多行输出

... You

... She

... """

>>> print(s)

He

You

She

>>> s="\\"                    #输入\的代码

>>> print(s)                   #print与没有print的输出结果不同,原因在于

\                             #没有print的输出默认调用了刺痛的repr函数

>>> s

'\\'

4.字符串长度

>>> len(s)

11

>>> s

'He\nYou\nShe\n'

5.字符串遍历                #广泛用于统计和查找

>>> s="abcdef"               #第一种字符串遍历的方式

>>> for i in s:

...     print(i)

...

a

b

c

d

e

f

>>> s

'a boy,happy,road'

>>> for i in range(len(s)):        #第二种字符串遍历方法:基于位置坐标遍历

...     print(s[i])

...

a

b

o

y

,

h

a

p

p

y

,

r

o

a

d

6.in  not in                   #判断是否在字符串中

>>> "s" not in "abd"

True

>>> "a" in "abd"

True

>>> 1 in [1,2,3,4]               #列表中也可用in  not in

True

>>> 1 in (1,2,3,4)               #元祖中也可用in  not in

True

>>> {1:2} in {1:2,3:4}             #字典中不可用in  not in

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unhashable type: 'dict'

7.字符串拼接

>>> s="abcdefg"

>>> s[0]+s[-1]                 #切片拼字符串

'ag

>>> s[0:2]+s[-2::]              #前两个和后两个字母拼接

'abfg'                         #切片终点坐标是开区间,不包含

>>> s[::2]                     #取所有偶数坐标的字母

'aceg'

>>> s[1::2]                    #取所有奇数坐标的字母

'bdf'

>>> s[::-1]                    #逆序输出所有字母

'gfedcba'

8.模板字符串

>>> "I am %s years old"%18       #%s可跟任何类型,这里是int

'I am 18 years old'

>>> "My name is %s"%"早上好"  #%s可跟任何类型,这里是str

'My name is早上好'

>>> "I am %d years old"%18     #%d只可跟int类型

'I am 18 years old'

>>> "My name is %s,I am %d years old"%("早上好",18)  #同时又有两个时,要使用元祖

'My name is 早上好,I am 18 years old'

小练习:

1.统计以下有几个a

>>> s="abcdef"

>>> result=0

>>> for i in s:

...     if i=="a":

...         result+=1

...

>>> print(result)

1

2.去掉字符串中的空格和\t

>>> s="a b c \tsdf"

>>> result=""                      #方法1

>>> for i in s:

...     if i!=" " and i!="\t":

...         result+=i

...

>>> print(result)

abcsdf

>>> s.split()                        #split()将所有的空白字符全部去掉

['a', 'b', 'c', 'sdf']

>>> "".join(s.split())                  #将列表转换为字符串

'abcsdf'

3.判断一句话中,没有a的单词有几个

>>> s="a boy,happy,road"

>>> s=s.split(",")

>>> s

['a boy', 'happy', 'road']

>>> num=0

>>> for i in s:

...     if "a" not in i:

...         num+=1

...

>>> print(num)

0

4.s="I am a boy!",请将该字符串中偶数位置的字母填充*

s="I am a boy!"

s=s.split()

for i in range(0,len(s),2):             #该程序实现有问题,实现的是偶数位置的单词加*

s[i]=s[i]+"*"                    #需求要求偶数位置的字母加*

print(" ".join(s))                     # s[i]=s[i]+"*"语句本身有问题,字符串不可赋值

运行结果:

E:\>python a.py

I* am a* boy!

正确的代码是:

s="I am a boy!"

result=""

for i in range(len(s)):

if i%2==0:

if (s[i]>="a" and s[i]<="z") or (s[i]>="A" and s[i]<="Z"):

result+=s[i]+"*"

print(result)

运行结果:

E:\>python a.py

I*a*o*

python入门(七):字符串的更多相关文章

  1. python入门7 字符串操作

    字符串操作 #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 字符串操作 ""&quo ...

  2. python入门6 字符串拼接、格式化输出

    字符串拼接方式    1  使用 + 拼接字符串 2 格式化输出:%s字符串 %d整数 %f浮点数 %%输出% %X-16进制 %r-原始字符串 3 str.format() 代码如下: #codin ...

  3. Python入门:字符串的分片与索引、字符串的方法

    这是关于Python的第3篇文章,主要介绍下字符串的分片与索引.字符串的方法. 字符串的分片与索引: 字符串可以用过string[X]来分片与索引.分片,简言之,就是从字符串总拿出一部分,储存在另一个 ...

  4. Python入门之 字符串操作,占位符,比较大小 等

    Python  字符串 常用的操作 切片 左包括右不包括的原则 ________________ 比较字符串大小 eg: cmp("a",'b')   -1第一个比第二个小  0 ...

  5. Python入门 —— 04字符串解析

    字符串 -字符串是 Python 中最常用的数据类型.(可以说是大多数语言都常用) 1. 创建字符串 ( '' 或 "" 和 '''''')(单,双和三引号)(字符串可以为空) - ...

  6. python入门之字符串的魔法

    1.test="alex" v=test.capitalize() print(v)               //输出结果首字母大写 2.test1="alex&qu ...

  7. Python入门:数据结构的4种基本类型

    数据结构:通俗点说,就是储存大量数据的容器.这里主要介绍Python的4种基本数据结构:列表.字典.元组.集合. 格式如下: 列表:list = [val1,val2,val3,val4],用中括号: ...

  8. Python爬虫入门七之正则表达式

    在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...

  9. 转 Python爬虫入门七之正则表达式

    静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...

  10. Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)

    Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...

随机推荐

  1. machine learning data sets

    http://archive.ics.uci.edu/ml/datasets.html 例如 3 分类 鸢尾花 数据集: http://archive.ics.uci.edu/ml/datasets/ ...

  2. 批量将某一目录下的.py文件改为.txt格式文件

    #!/usr/env/python#-*- coding:utf-8 -*-#批量将某一目录下的.py文件改为.txt格式文件import os,os.pathfile_list = os.listd ...

  3. NumPy 基础用法

    NumPy 是高性能科学计算和数据分析的基础包. 它是 pandas 等其他各种工具的基础. 主要功能: ndarray 一个多维数组结构, 高效且节省空间 无需循环对整组数据进行快速运算的数学函数 ...

  4. because there was insufficient free space available after evicting expired cache entries

    Tomcat运行的时候哗哗哗的报警告 版本是Tomcat 8.5.15 告警信息关键字如下 because there was insufficient free space available af ...

  5. SQL特殊comment语法

    SQL 注释的特殊用法: /*!版本号 语句*/ 表示大于等于某个版本是,才执行相应的语句. 在版本为5.7.23的MySQL上做测试如下: 测试1 mysql> select 1 /*!507 ...

  6. Spring Boot - 基础 POM 文件

    表 1. Spring Boot 推荐的基础 POM 文件 名称 说明 spring-boot-starter 核心 POM,包含自动配置支持.日志库和对 YAML 配置文件的支持. spring-b ...

  7. sql server紧急状态下登录脚本

    --打开xp_cmdshell功能  EXEC [sys].[sp_configure] @configname = 'xp_cmdshell', -- varchar(35)    @configv ...

  8. 1T硬盘获3T体验 彻底解决NVR存储时间短的问题

    随着高清技术的进步,现在300W和400W的IPC越来越普及,但同时带来了更多的成本及存储便利问题.“硬盘存了7天就满了”.“同样大小的硬盘,存储时间越来越短”......为啥你的NVR不能存更长的时 ...

  9. 静态初始化块和main方法哪个先被执行?

    直接看代码 public class BlockAndMain { public static void main(String[] args) { System.out.println(" ...

  10. Phpstorm 与 服务器 同步 代码

    链接:(自己领悟就好了) Phpstorm同步代码