码迷,mamicode.com
首页 > 编程语言 > 详细

python基础系列一:字符串

时间:2019-01-10 10:59:09      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:强制转换   a+b   traceback   切片   最简   单引号   val   print   中转   

1.常用数据类型
int 整型
string 字符串
boolean 布尔型
list 列表
dict 字典
tuple 元组
2.可变数据类型:list,dict
不可变数据类型:int,string,tuple

----可变数据类型----
>>> a
[1, 2, 3, 4]
>>> id(a)----内存分配地址不变
140488352611576
>>> a.append(5)
>>> a
[1, 2, 3, 4, 5]
>>> id(a)
140488352611576

----不能强制进行类型转换----
>>> a="111aaa"
>>> a
‘111aaa‘
>>> int(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ‘111aaa‘

>>> a=‘111‘ --带引号是字符串赋值
>>> a
‘111‘
>>> type(a)
<type ‘str‘>
>>> int(a) --强制转换为整型输出
111
>>> a --再次打印a的时候,还是字符串
‘111‘
>>> type(a)
<type ‘str‘>

----boolean数据类型----
>>> print 1==1 --两个等于号是比较,比较值是否相等,比较数据类型是否一致
True
>>> print 1=="1" --类型不一样
False
>>> bool(1==1) --布尔函数,比较判断
True
>>> a=bool(1==1)
>>> a
True

字符串:用双引号括起来
子字符串:a="abc123" b="abc" b就是a的子字符串

----计算中文字符串长度----
>>> a="12" #长度2个字节
>>> len(a)
2
>>> a="李晶" #长度6个字节,每个中文字符占3个字节
>>> len(a)
6
>>> a=u"李晶" #转换为unicode码,长度就变为两个字节
>>> len(a)
2
>>> a="李晶"
>>> g=a.decode(‘utf-8‘) #第二中转换方式
>>> len(g)
2
>>> len(a)
6
>>>

-----转义符----
>>> a="adsf"" #想要输出adsf" 报错
File "<stdin>", line 1
a="adsf""
^
SyntaxError: EOL while scanning string literal
>>>
>>> a = "asdf\"" #加转义符 \ 成功输出
>>> print a
asdf"

>>> print "ab\n" #输出ab后换行
ab

>>> print "\n" #输出换行


>>> print r"\n" #输出\n,因为前面加了r,强制输出原来的字符串
\n
>>>

----字符串访问和查找----
类似于列表的方式,以切片的方法访问
>>> a="abcd" #定义字符串
>>> a[0] #切片位置从0开始
‘a‘
>>> print a[0],a[2] #打印第一个和第三个
a c
>>> print a[0:2] #打印第一个到第二个,最后位置是切片的最大数减一
ab
>>> print a[0:3]
abc
>>> print a[0:]
abcd
>>> print a[-1] #打印最后一个
d
>>> print a[len(a)-1]
d
>>> print a[:-1]
abc

 

----字符串连接----
>>> a="abc"
>>> b="cde"
>>> print a+b #最直接也是最浪费资源的方法,最好不要用,会产生临时的变量承接两个相加的结果
abccde

>>> print "hello abc %s fg" % b #占位符的方式,%s是字符串,%d是整型
hello abc cde fg

>>> ",".join([a,b]) #用函数最简洁
‘abc,cde‘
>>> "".join([a,b])
‘abccde‘
>>> b="+" #将加号赋值给变量b
>>> a=["1","2"]
>>> b.join(a) #把加号作为字符串连接
‘1+2‘
>>> c=b.join(a)
>>> print c
1+2

>>> a="my name {1} {0}" .format("lisonglin","is") #format方法的简单用法,花括号里面的数值是字符串的位置
>>> a
‘my name is lisonglin‘
>>> a="my name is {name},age is {age}" .format(name="lisonglin",age="35") #用变量来替代,更直接
>>> print a
my name is lisonglin,age is 35

----字符串的引号----
#脚本如下:
print "abc"
print ‘abc‘
print "abc‘" #要输出单引号,需要双引号括起来
print ‘abc"‘ #要输出双引号,需要单引号括起来
print """ #多行注释用三个双引号
@"copy"
@‘right‘
"""
#执行结果如下:
[root@linux-1 ~]# python 1.py
abc
abc
abc‘
abc"

@"copy"
@‘right‘

----字符串修改----
>>> a="abc"
>>> a.replace("b","B") #使用replace函数修改
‘aBc‘
>>> a #字符串本身不会被修改,不可变数据类型
‘abc‘
>>> b=a.replace("b","c") #需要把修改的字符串,重新赋值给b,完成修改
>>> a
‘abc‘
>>> b
‘acc‘

python基础系列一:字符串

标签:强制转换   a+b   traceback   切片   最简   单引号   val   print   中转   

原文地址:https://www.cnblogs.com/lisonglin/p/10248045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!