字符串的用法
'''
print('hello world')
print("hello world")
print('''
''')
ch = '我'
print(ord(ch)) #ord只能处理单个字符
#字符串截取
mystr = '生活中的程序员真实写照、一款游戏一包烟,一台电脑一下午。一盒泡面一壶水,一顿能关一整天'
print(mystr[:]) #整个字符串
print(mystr[-15:-8])
print('notepad')
print(len('notepad')) #字符串长度为7
print('---------','notepad'[1])
for i in 'notepad':
print(i,end='')
mycmd='notepad'
print(mycmd[3])
print(mycmd[1:3]) #字符串的截取,1-3但不包括3
print(mycmd[1:8]) #字符串的截取,1-8但不包括8
print(mycmd[0:-1])
print(mycmd[-3:-1]) #正索引从0开始,负索引从-1开始
print('mycmd'*3) #反复输如3次
mystr ='cmd0'
print(mystr[0])
#mystr[0]='A'
mystr = 'Amd'
print(mystr)
#字符串可以调到新的字符串地址,但是不可以改变常量字符串
#数据机构
#list简介
mylist = [1,2,3,4,5,6,7]
print(len(mylist)) #列表,容纳多个数据
mylist.append(8) #增加数据
print(len(mylist)) #列表长
for data in mylist: #循环遍历列表
print('-----',data)
print(mylist)
print(mylist[1:7])#索引截取,与字符串,正索引,负索引
print(mylist[4:-1])
print(mylist[:])#全部,不包含最后一个索引
print(mylist[:4])#默认不输入是开头
print(mylist[4:])#默认不输入是结尾
print(mylist*2) #乘法复制两次
print(mylist+mylist[4:6]) #加法列表叠加
#list可以被修改
list = [1,2,3]
list[1]=10 #list可以修改
print(list)
s = 'abcdefg'
print(s[::-1])#字符串倒写
print(s[::-3])#从倒是第一个开始每3个输出一个
#字符串赋值
mystr = 'calc'
print(mystr[1])
#mystr[1]='X' 字符串单个元素不可以赋值
mystr = 'xalc' #字符串可以赋值新的常量字符串地址
#打印"calc"
print("\"calc\"") #\'代表字符串中的'
print('ABCD\nFG') #\n和\r不显示,换行作用
s = 'hello'
print(len(s))
#测量字符串长度用len
#字符在内存的编码
#ord函数可以看到字符的Unicode
s1 = 'hi,你好'
n = len(s)
for i in range(n):
print(s1[i],ord(s1[i]))
#用程序测出"A-Z"和'a-z'的字符
c = 'ABCDEFGHIJKMNOPQRSTUVWXYZ'
c1 = 'abcdefghijkmnopqrstuvwxyz'
n = len(c)
for i in range(n):
print(c[i],'---',ord(c[i]),c1[i],'---',ord(c1[i]), end=' ')
#总结;小写的a到z是97到122,大小的A到Z是65到90
#编码转为字符
#chr()函数可以将编码转换成符号或文字
a = chr(25105)
b = chr(20204)
c = chr(119)
d = chr(101)
print(a,b,c,d)
#5.字符串比大小
def compare(a,b):
c = len(a) #计算字符的长度
d = len(b)
if c<d:
n = d
elif c>d:
n = c
else:
n = c
for i in range(n):
if a[i]>b[i]:
return 1
elif a[i]<b[i]:
return -1
elif a[i] == b[i]:
return 0
if m == n:
return 0
elif m>n:
return 1
else:
return -1
print(compare("hi","wang"))
#4-1-1输入一个字符串,统计它包含的大小写字母的个数。
S = input('请输入英文')
n = len(S)
count = 0
xia = 0
for i in range(n):
if ord(S[i]) >= 97 and ord(S[i]) <= 122:
count += 1
elif ord(S[i]) >= 65 and ord(S[i]) <=90:
xia += 1
print("大写字母有{},小写字母有{}".format(count,xia))
#4-1-2输入一个字符串,统计它包含字母字符串和数字的个数
#s = input('请输入字符串')
#count = 0
#shu = 0
#xia = 0
#for i in range(len(s)):
# if s[i]>='a' and s[i]<='z':
# xia+=1
# elif s[i]>='A' and s[i]<='Z':
# count+=1
# elif s[i]>='0' and s[i]<='9':
# shu+=1
#print(shu,xia,count)
#4-1-3输入一个字符串,把他反向显示。
def reverseA(s):
t = ''
try:
for i in range(len(s)-1,-1,-1):
t = t+s[i]
except Exception as err:
print(err)
return t
print(reverseA('redasf'))
s = 'sdfssdf'
print(len(s)-1)
#4-1-4输入一个字符串,去掉它左右多余的空格,如“ a bc "返回"a bc"
def trim(s):
t = ''
i = 0
j = len(s)-1
while i<=j and s[i] == ' ':
i=i+1
j = j - 1
for k in range(i,j+1):
t = t+s[k]
return t
s = input("请输入字符串")
print(s,'length=',len(s))
t = trim(s)
print(t,'length=',len(t))
'''
'''
format格式有:
1. {:.2f}:保留小数点后两位
2. {:+/-.2f}:带符号保留小数点后两位
3. {:.0f}:不带小数
4. {:0>2d}:数字补零(填充左变,宽度为2)
5. {:x<4d}:数字补x(填充右边,宽带为4)
6. {:,}:以逗号分隔的数字格式
7. {:.2%}:百分比格式
8. {:.2e}:指数记法
9. {:>10d}:右对齐(默认,宽度为10)
10.{:<10d}:左对齐(默认,宽度为10)
11.{:^10d}:中间对齐(宽度为10)
12.b d o x 分别是二进制,十进制,八进制,十六进制
num = 190
money = 2000
mystr = '和风成女神有%d个备胎,他花了%.2f元给女神买了手机'%(190,2000)
print(mystr)
#utf-8包含ACSII
#ACSII格式,没有中文,可以编译 utf-8站的空间较大
print(r'c\asfd\sfdsa\sadf\sadfasd\a') #r节约时间,不用输入转义字符,特殊处理
print(u'sdfsadf')
#查看字符串帮助
print(dir(''))
mylist = dir("") #dir遍历所有的属性返回的是一个列表list
print(mylist) #[]包含了所有的函数,属性
for i in mylist: #遍历打印
print(help('\'\'.'+i))
'''
'''
eval:只能处理字符串,字符串的数值或者表达式
exec:文本当语句执行
print('-'.join('ahgkhgjjk')) #ahgkhgjik每个字符串之间插入一个字符串间隔
for i in range(5,50):
print('8888'.rjust(i,'*'))
#按行切割
mystr = '''
'''
# splitlines() 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表
# ,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
mylist = mystr.splitlines(True) #包含True,换行两次,不包含换行一次
for date in mylist:
print(date)
# mystr = 'A1021231231231231 # waefrwafawfa # www.asdfas'
# mystr = mystr.split('#')
# print(mystr)
print('hello china'.swapcase()) #把大小的字母改成小写,把小写的字母改成大写
print('Sfdafasdfsdf'.swapcase())
print('sadfasdfD'.swapcase())
print('AFAFADF'.swapcase())
print('123'.zfill(40)) #金融数据
'''
from string import Template
print(type(Template))
mystr = Template('hi,$name 你是 $baby')
print(mystr.substitute(name='小明',baby='lovely baby'))