字符串

一 整型、布尔值、字符串

  int&str&bool三者之间可以相互转换

二 字符串的常规操作及内置方法

1.字符串拼接(相加&相乘)

  -----字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

2.字符串的操作方法:

s = '你为什么那么美,我始终不能将你置之不顾'
# 用索引取值
print(s[-5])
print(s[10])
# 切片 0可以省略不写
print(s[0:10])
print(s[:10])
print(s[:])
print(s[:10:2]) # 加步长每隔2个取一个值
# 反向取值必须加步长, 最后一位的索引值为-1,
print(s[-1:-8])
print(s[-1:-8:-2])
View Code

 

3.字符串的内置方法

大前提:对字符串的任何操作都是产生一个新的字符串,与原字符串没有关系 
s = 'iloveyougenuinly'
t1 = s.count('a') # 在字符串中查找指定字符有多少个
t2 = s.upper() # 将字符串中的字符全部大写
t3 = s.lower() # 将字符串中的字符全部小写
t4 = s.title() # 非字母隔开的每个单词的首字母大写
t5 = s.find('a') # 通过元素获取其索引,找到第一个就返回,找不到会返回-1。
t6 = s.index('a') # 通过元素获取其索引,找到第一个就返回,找不到会报错。
t7 = s.capitalize() # 将字符串中的首字母大写
t8 = s.replace('a','nb',2) # 替换,由什么替换成什么,替换几次
t9 = s.startswith('w') # 判断以什么为开头 可以切片
t10 = s.startswith('i',3,) # 判断以什么为开头 可以切片,取索引3后面的所有字符
t11 = s.endswith('i',3) # 判断以什么结尾,可以切片,取索引3后面的所有字符
t12 = s.swapcase() # 大小写反转
t13 = s.isupper() # 判断字符串中所有字母是否为大写,返回布尔值
t14 = s.islower() # 判断字符串中所有字母是否为小写,返回布尔值
t15 = s.isdigit() # 字符串只由数字组成
t16 = s.isalpha() # 字符串只由字母组成
t17 = s.isalnum() # 字符串由字母或数字组成
---------------------------------------------------------------
t18 = s.strip('W') # 默认去除字符串两边的空格,换行符,制表符,只是去除左边-->lstrip()去除右边-->rstrip(),可设置去除的字符
t19 = s.split() # 默认按照空格分割,
t20 = s.split('r') # 指定字符进行分割,
t21 = s.split('s',2) # 指定字符进行分割,且指定分割次数
---------------------------------------------------------------
join 连接符
l1 = ['wusir', 'alex', 'taibai'] # 操作列表时,列表里面的内容必须全部是字符串类型
t22 = ''.join(l1) # 默认连接
t23 = '-'.join(l1)   # 指定字符连接
---------------------------------------------------------------
字符串的格式化输出
第一种情况
m = '姓名:{} 年龄:{} 性别:{}'
w = m.format('烟雨江南',20,'')
print(w)
第二种情况
m = '姓名:{0} 年龄:{1} 性别:{2} 我永远{1}岁'
w = m.format('烟雨江南',18,'')
print(w)
第三种情况
m = '姓名:{name} 年龄:{age} 性别:{sex} 我永远{age}岁'
w = m.format(name = '烟雨江南',age = 18,sex = '')
print(w)
View Code

 

 

4. 正数索引和负数索引可以混用。只要能指到正确的元素即可。

三  字符串的格式化输出**

 

现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式
'''
------------ info of Alaa Li -----------
Name  : Ala Li
Age   : 22
job   : Teacher
Hobbie: girl
------------- end -----------------
'''

 

 

     只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦

name = input('请输入姓名:')
age = input('请输入年龄:')
job = input('请输入职业:')
hobbie = input('请输入爱好:')
msg = '''
------------ info of %s -----------
Name  : %s
Age   : %s
job   : %s
Hobbie: %s
------------- end -----------------
'''%(name,name,age,job,hobbie)
print(msg)


------------ info of 人间白首 -----------
Name  : 人间白首
Age   : 18
job   : 作者
Hobbie: 玄幻小说
------------- end -----------------
View Code

 

 

%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦

msg = "我是%s,年龄%d,目前学习进度为80%"%('金鑫',18)
print(msg)
View Code

 

---->这样会报错的,因为在格式化输出里,你出现%默认为就是占位符的%,但是我想在上面一条语句中最后的80%就是表示80%而不是占位符,怎么办?

msg = "我是%s,年龄%d,目前学习进度为80%%"%('jiajia',18)
print(msg)
View Code

 

====>

这样就可以了,第一个%是对第二个%的转译,告诉Python解释器这只是一个单纯的%,而不是占位符。

 

posted @ 2019-07-10 02:14  self哥  阅读(151)  评论(0编辑  收藏  举报