python入门(七):字符串
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入门(七):字符串的更多相关文章
- python入门7 字符串操作
字符串操作 #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 字符串操作 ""&quo ...
- python入门6 字符串拼接、格式化输出
字符串拼接方式 1 使用 + 拼接字符串 2 格式化输出:%s字符串 %d整数 %f浮点数 %%输出% %X-16进制 %r-原始字符串 3 str.format() 代码如下: #codin ...
- Python入门:字符串的分片与索引、字符串的方法
这是关于Python的第3篇文章,主要介绍下字符串的分片与索引.字符串的方法. 字符串的分片与索引: 字符串可以用过string[X]来分片与索引.分片,简言之,就是从字符串总拿出一部分,储存在另一个 ...
- Python入门之 字符串操作,占位符,比较大小 等
Python 字符串 常用的操作 切片 左包括右不包括的原则 ________________ 比较字符串大小 eg: cmp("a",'b') -1第一个比第二个小 0 ...
- Python入门 —— 04字符串解析
字符串 -字符串是 Python 中最常用的数据类型.(可以说是大多数语言都常用) 1. 创建字符串 ( '' 或 "" 和 '''''')(单,双和三引号)(字符串可以为空) - ...
- python入门之字符串的魔法
1.test="alex" v=test.capitalize() print(v) //输出结果首字母大写 2.test1="alex&qu ...
- Python入门:数据结构的4种基本类型
数据结构:通俗点说,就是储存大量数据的容器.这里主要介绍Python的4种基本数据结构:列表.字典.元组.集合. 格式如下: 列表:list = [val1,val2,val3,val4],用中括号: ...
- Python爬虫入门七之正则表达式
在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...
- 转 Python爬虫入门七之正则表达式
静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...
- Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice)
Python入门篇-基础数据类型之整型(int),字符串(str),字节(bytes),列表(list)和切片(slice) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Py ...
随机推荐
- 通过GUID确保winform运行唯一实例
通过程序生成的GUIDwinform唯一实例 using System.Threading;bool createdNew; Guid ownGUID = new Guid(((GuidAttribu ...
- 阻塞I/O、非阻塞I/O和I/O多路复用
一.阻塞I/O 首先,要从你常用的IO操作谈起,比如read和write,通常IO操作都是阻塞I/O的,也就是说当你调用read时,如果没有数据收到,那么线程或者进程就会被挂起,直到收到数据.阻塞的意 ...
- 嵌入式Linux内核tasklet机制(附实测代码)
Linux 中断编程分为中断顶半部,中断底半部 中断顶半部: 做紧急,耗时短的事情,同时还启动中断底半部. 中断底半部: 做耗时的事件,这个事件在执行过程可以被中断. 中断底半部实现方法: taskl ...
- PythonStudy——函数对象 Function object
# 在python中,所有变量存放的值只要是地址,我们就称之为对象# -- 所有的变量都是用来存放地址的,所以都是对象# -- 存放整型的地址就是整型对象 | 存放函数的地址就是函数对象 | 存放文件 ...
- 斐波那契数列中获取第n个数据值
class Fibonacci { /** * Description:迭代方法获取fibonacci第n项数值 * * @param int $n * @return int */ public s ...
- socat管理haproxy以及haproxy调优
Unix套接字命令(Unix Socket commands) socat是一个多功能的网络工具,名字来由是“Socket CAT”,可以看作是netcat的N倍加强版,socat的官方网站:http ...
- 二十一、springcloud(七)服务网关zuul
1.简介 Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,在微服务架构中,后端 ...
- access十万级数据分页
最近的一个项目采用winform+access,但后来发现客户那边的数据量比较大,有数十万条数据.用sql语句进行分页,每次翻页加载都需要8秒钟左右,实在难以忍受. 后来百度了一下,发现一篇文章我的A ...
- 并发之lock的condition接口
13.死磕Java并发-----J.U.C之Condition 12.Condition使用总结 11.Java并发编程系列之十七:Condition接口 === 13.死磕Java并发-----J. ...
- 20165312 2017-2018-2《JAVA程序设计》第8周学习总结
20165312 2017-2018-2<JAVA程序设计>第8周学习总结 一.第十二章知识点总结 进程与线程 进程是程序的一次动态执行进程,它对应了从代码加载.执行至执行完毕的一个完整过 ...