目录
- 常用字符串方法
- 字符串格式化表达式
- 占位符和类型码
- 占位符和类型码语法
- while语句
- while语句嵌套
- break语句、死循环
1. 常用字符串方法
常用字符串方法: help(str)内可查询
字符串的调用语法:
对象.方法名(方法传参)
注:方法的调用属于表达式,通常可以返回一个值或None
方法名 | 说明 |
---|---|
S.isdigit() | 判断字符串中的字符是否全为数字 |
S.isnumeric() | 判断字符串是否全为数字字符 |
S.isalpha() | 判断字符串是否全为英文字母 |
S.islower() | 判断字符串所有字符是否全为小写英文字母 |
S.isupper() | 判断字符串所有字符是否全为大写英文字母 |
S.isspace() | 判断字符串是否全为空白字符 (空格,水平制表符(\t),换行符(\n)等不可见字符) |
S.center(width[,fill]) | 将原字符串居中,左右默认填充空格 #S.center(8,’#’) |
S.count(sub[,start[,end]]) | 获取一个字符串中子串的个数# S = ‘ABCDABCABA’ >>>S.count(‘B’,3,9) >>>2(索引值[3,9)) |
S.find(sub[,start[,end]]) | 获取字符串中子串sub的索引,失败返回-1 #S.find(‘AB’,2,9) |
S.strip() | 返回去掉左右空白字符的字符串#s=’\t\n hello world\t\n\r’ >>>s.strip() #>>>hello world |
S.lstrip() | 返回去掉左侧空白字符的字符串 |
S.rstrip() | 返回去掉右侧空白字符的字符串 |
S.upper() | 生成将英文转换为大写的字符串 |
S.lower() | 生成将英文转换为小写的字符串 |
S.replace(old,new[,count]) | 将原有字符串的old用new代替,生成一个新的字符串#s=‘ABCDABCABA’ >>>s.replace(‘AB’,‘ab’,2) >>>‘abCDabCABA’ |
S.startswith(prefix[,start[,end]]) | 返回S是否以prefix开头,如果以prefix开头返回True |
S.endswith(suffix[,start[,end]]) | 返回S是否以suffix结尾,如果以suffix结尾返回True |
S.title() | 生成每个英文单词首字母大写的字符串 |
2. 字符串格式化表达式
字符串格式化表达式:
运算符: %
作用: 生成一定格式的字符串
语法:
格式字符串 % 参数值
格式字符串 % (参数值1,参数值2,...)
注: 格式字符串中的%为占位符,占位符的位置将用参数值替换
eg: #格式化字符串
fmt = "姓名:_%s_, 年龄:_%d_"
name = input('请输入姓名:')
age = int(input('请输入年龄:'))
s = fmt % (name , age)
print(s)
3. 占位符和类型码
格式化字符串中的占位符和类型码
占位符 | 意义 |
---|---|
%s | 字符串,使用str函数转换 # “%s” % 30000 >>>‘30000’ |
%r | 字符串,使用repr函数转换 # “%s” % 30000 >>>‘30000’ |
%c | 整数转为单个字符 #unicode # “%c” % 30000 >>>‘田’ |
%d | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(a~f小写) |
%x | 十六进制整数(A~F大写) |
%e | 指数形浮点数(e小写) 如:2.8e+10 |
%E | 指数形浮点数(E大写) 如:2.8E+10 |
%f , %F | 浮点十进制形式 |
%g , %G | 十进制形式浮点数或指数浮点数自动转换 |
%% | 等同于一个%字符 #"%d%%" % 50 >>>‘50%’ |
4. 占位符和类型码语法
占位符和类型码之间的格式语法
% [格式语法] 类型码
格式语法:
- 左对齐
+ 显示正号
0 补零
宽度(整数)
宽度.精度(整数)
eg:
'%10d' % 123 # ' 123' #字符串占10个宽度
'%-10d' % 123 # '123 ' #左对齐
'%-+10d' % 123 # '+123 ' #左对齐
'%10s' % 'abc' # ' abc'
'%-5s' % 'abc' # 'abc '
'%05d' % 123 # '00123' #补零,字符串占5个宽度
'%07.3f' % 3.1415926 # '003.141' #补零, 宽度为7,小数点后三位
##例子
#输入三行文字,让这些文字依次以20字符的宽度右对齐输出
#按最长的字符串左对齐
line1 = 'hello world'
line2 = 'abcd'
line3 = 'a'
length=max(len(line1),len(line1),len(line1))
fmt = "%20s"
fmt2 = "%%-%ds" % length #用legth替代%d,fmt2=%-11s
print(fmt2)
print(fmt % line1,fmt % line2,fmt % line3,sep = '\n')
print(fmt2 % line1,fmt2 % line2,fmt2 % line3,sep = '\n')
5. while语句
python中的循环语句:
1.while 语句
2.for 语句
while语句 :
作用 : 根据一定条件,重复的执行一条或多条语句
语法 :
while 真值表达式 : #真值表达式为True,执行语句块1,为False时,执行语句块2
语句块1
else:
语句块2
语句语法说明 :
1.先执行真值表达式,判断True/False
2.如果为True则执行语句块1,然后跳转到第1步
3.如果为False则执行else子句部分的语句块2.然后结束此while语句的执行.
如果没有else子句,则直接结束此while语句
4.else子句部分可以省略(同if语句类似)
while 注意事项 :
1.要控制真值表达式来防止死循环
2.通常用真值表达式内的变量来控制循环条件
3.通常要在循环语句块内改变循环变量来控制循环的次数和变量的走向
练习:
#输入一个数n,打印n遍 'Hello World!
n = int(input('需要打印几遍?\n'))
while n >0 :
print('hello world '+str(n)+'\n')
n -= 1
else :
print('打印结束...')
#打印1~20的整数 打印在一行内显示,
#每个数字用一个空格分开
i = 0
while i < 20 :
i += 1
print(i,end = ' ')
#打印1~20 的整数,每行5个,打印四行,如:
'''
1 2 3 4 5
6 7 8 9 10
11 12 ......
'''
i = 0
while i < 20 :
i += 1
if i % 5 == 0 :
print(i,end = '\n')
else:
print(i,end = ' ')
#用while语句打印10~1的所有整数(包含1)
i = 10
while i > 0 :
print(i)
i -= 1
#计算 1+2+3+4+…+99+100的和
i = 0
ans = 0
while i < 100 :
i += 1
ans += i
print('1+2+3+...+99+100= ',ans)
'''输入一个整数,表示三角形的宽度和高度
打印出相应的直角三角形,如:
请输入三角形宽度: >>>4
打印如下:
*
**
***
****
'''
n = int(input('请输入一个整数,表示三角形的宽度和高度:\n'))
i = 0
while i < n :
i += 1
print('*'*i,end = '\n')
6. while语句嵌套
while 语句嵌套 :
while语句本身是语句,和其他语句一样,可以放在其他符合语句的内部
while 嵌套示意:
while 真值表达式1 :
...
while 真值表达式2 :
...
else :
...
...
else :
...
#打印1~20之间的整数打印在一行
#把以上打印结果使用while循环打印10遍
j = 0
while j < 10 :
i = 0
while i < 20 :
i += 1
print (i , end = ' ')
else :
print()
j += 1
'''输入一个数,打印指定宽度的正方形,如:
请输入宽度: >>>5
打印如下正方形:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5 '''
n = int(input ('请输入宽度'))
j = 0
while j < n :
j +=1
i = 0
while i < n :
i += 1
print(i,end = ' ')
print()
7. break语句、死循环
break 语句 :
作用 :
用于循环语句(while,for语句)中,
用来终止当前循环语句的执行
break 说明 :
1.当break语句执行后,此循环语句break之后的语句将不再执行
2.break语句通常和 if 语句组合使用
3.break语句终止循环时,循环语句的else子句的语句将不会执行
4.break语句只能终止当前循环语句的执行,
如果有循环嵌套时,不会跳出嵌套的外重循环
5.break语句只能在循环语句(while或for语句)内部使用
eg:
i = 0
while i < 6 :
print('本次循环开始时:',i)
if i == 3 :
break #break将打破包含它的 while 语句
print('本次循环结束时:',i)
i += 1
else :
print('while里else的子句') #循环用break结束,else的子句就不会执行
print('这是程序的最后一条')
#打印1~10,中间空格隔开
i = 0
while True :
i += 1
print(i,end=' ')
if i == 10 :
break
死循环:
死循环是指循环条件一直成立的循环
死循环通常用break语句来终止循环
死循环的else子句永远不会执行
eg:
while True :
n = int(input('请输入'))
if n == 0 :
break
print(n)
练习:
'''任意输入一些整数
每次输入一个
当输入0时结束输入
当输入完成后打印您输入这些数的和 '''
ans = 0
while True :
a = int(input('请输入一些整数,输入0结束:\n'))
if a == 0 :
break
ans += a
print('您输入这些数的和为:',ans)
'''写程序用while实现打印三角形
要求输入一个整数表示三角形的宽度和高度,
打印如下三种直角三角形
1)
*
**
***
****
2)
****
***
**
*
3)
****
***
**
*
'''
n = int(input('请输入一个整数: '))
i = 0
j = 0
k = 0
print('1)') #第一个三角形
while i < n :
i += 1
print(' '*(n-i)+'*'*i)
print('2)') #第二个三角形
while j < n :
j += 1
print(' '*(j-1)+'*'*(n+1-j))
print('3)') #第三个三角形
while k < n :
k += 1
print('*'*(n+1-k)+' '*(k-1))
'''
写程序求多项式的和:
1/1 - 1/3 + 1/5 - 1/7 + 1/9 ......+1/(2*n-1)的和
n最大取值:1000000
1)打印这个和
2)打印这个和乘以4的值?
'''
i = 0
ans = 0
n=1000000
while i < n :
i += 1
ans += ((-1)**(i-1))/(2*i-1)
else :
print(ans)
print(ans*4)