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. mysql locking

    1. 意向锁 https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html#innodb-insert-intention-locks 官方文 ...

  2. WEBBASE篇: 第七篇, JavaScript知识1

    JavaScript 1 一.JavaScript 概述什么是JavaScript: JavaScript 简称 JS,是一种专门运行于JS解释器/引擎中的解释型脚本语言JS发展史: 1.1992年N ...

  3. Python全栈之路----函数----参数

    参数可以让你的函数更灵活,不只能做死的动作,还可以根据调用时传参的不同决定函数内部的执行流程. 形参:只有在被调用时才分配内存单元,在调用结束时,即可释放所分配的内存单元.因此形参只在函数内部有效.函 ...

  4. Codeforces 1080C- Masha and two friends

    AC代码 #include <bits/stdc++.h> #define ll long long const int maxn=1e6+10; using namespace std; ...

  5. iso系统镜像刻录到光盘和U盘

    使用UltraISO刻录 刻录U盘,点击文件,打开,选择镜像 启动,写入硬盘镜像选择U盘即可 刻录光盘 工具,刻录光盘映像,选择镜像,需要先插入光盘刻录机(有些电脑可能自带光驱盘,且有刻录功能,那么我 ...

  6. php配置php_pdo_mysql模块

    网上的都是什么编译安装的,总算找到一个简单的方法 安装好PHP yum install php php-fpm -y 直接安装pdo模块 yum install php-pdo_mysql 在/etc ...

  7. Hystrix 学习使用

    说明: 每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中 执行execute()/queue做同步或异步调用 请求接收后,会先看是否存在缓存数据,如果存在,则不会继续 ...

  8. golang垃圾回收和SetFinalizer

    golang自带内存回收机制--GC.GC通过独立的进程执行,它会搜索不再使用的变量,并释放.需要注意的是,进行GC会占用机器资源. GC是自动进行的.如果要手动进行GC,可以调用runtime.GC ...

  9. 廖雪峰Java7处理日期和时间-4最佳实践-最佳实践

    jdk提供了2套新旧的API来处理日期和时间. java.util * Date * Calendar java.time(JDK>=1.8) * Localdate * LocalTime * ...

  10. perl open函数的使用

    本文和大家重点讨论一下如何读写Perl文件,主要包括打开.关闭Perl文件,读写Perl文件,Perl文件的状态,命令行参数和打开管道六部分内容,希望通过本文的学习你对读写Perl文件有深刻的认识. ...