# -*- coding: utf-8 -*-
#字符串笔记:
import string
'''s = 'abc'
s[0] = 'm'
print(s) #字符串是不可以被修改的, 运行结果:TypeError: 'str' object does not support item assignment'''
#去除空格
a = ' abced efg '
print(a.strip()) #删除两段的空格 abced efg两端的空格删除了
print(a.lstrip()) #删除左边的空格 abced efg 删除了左边的空格,右边的空格还在
print(a.rstrip()) #删除邮编的空格 abced efg删除了右边的空格,左边的空格还在
print(a) #字符串本身并没有改变 abced efg
#字符串的链接
s1 = 'abc'
s2 = 'def'
print(s1 + "\n" +s2) #字符串的连接就是 用加号链接额
#字符串大小写
b = 'abc def'
print(b.upper()) #全部大写
print(b.upper().lower()) #全部小写
print(b.capitalize()) #首字母大写
#位置比较
s_1 = 'abcdefg'
s_2 = 'abdeffx'
print(s_1.index('bcd')) #输出'bcd'字符串首字母在原字符串的位置
try:
print(s_2.index('bcd'))
except ValueError:
pass # 原字符串‘abdeffx'中无’bcd'字符串,因此输出结果为空。
'''在python3里,cmp比较函被移除,直接比较就行了'''
print(s_1 == s_2) #两个字符串的比较,可以看作两个字符串按照顺序,分别比较对应位置的元素的大小。直到第一次分出大小
print(s_1 < s_2) # >>True
print(s_1 > s_2) #>> False
#长度
s3 = 'ddd '
print(len(s3)) # >>5 注意,空格也算长度
#分割 和连接
s = 'abc,def,ghi'
s2 = s.split(',')
print(type(s2)) #
print(s2) # ['abc', 'def', 'ghi'] 分割后以列表类型返回。
s = '''abc
def
ghi'''
s_1 = s.split('\n')
s_2 = s.splitlines()
print(s_1) # ['abc', 'def', 'ghi']
print(s_2) # ['abc', 'def', 'ghi'] 说明s_1 , s_2 两种方式是等价的。
s = ['abc','def','hig']
print(''.join(s))
print('-'.join(s))
print('\n'.join(s)) #分割后的字符串,还可以以多种形式连接起来。
#常用判断
s = 'abcdefgg'
print(s.startswith('abc')) #判断是否以'abc'开头
print(s.endswith('fgg')) #判断是否以'fgg'结尾
print('abcd'.isalpha()) #判断是否只有字母无数字
print('1234'.isdigit()) #判断是否纯数字
print(' '.isspace()) #判断是否只有空格
print('abcde222'.islower()) #判断字母是否只有小写
print('ABCED134'.isupper()) #判断字母是否只有大写
print('hello world'.istitle()) #判断是否是标题行
print('1234abcd'.isalnum()) # 判断是否只有字母和数字
print('\t134b'.isalnum()) #
#从数字到字符串的变化
print(str(5))
print(str(4.2))
print(str(5.))
print(int('134'))
print(float('1343.3343'))
#print(int('134.13')) # 这样会报错,
print(int('333',8)) #将字符串转换为八进制整数。
print(int('ddd',16)) #3549
#字符串和list
s = 'abcdefg'
l =list(s)
print(l)