练习:剔除数字:
要求如下:
1、编写一段程序代码,程序运行后,
需要用户随意输入一段包含有数字和字母的字符串;
2、程序会自动删除字符串中的数字,
然后输出一串没有数字的字符串(纯字母的字符串)或者列表(没有数字);
3、要求输出的非数字的字符顺序不能变。
方法一:
def delNumber1(str1):
for i in str1:
#if i=='0' or i=='1' or i=='2' or i=='3' or i=='4' or i=='5' or i=='6' or i=='7' or i=='8' or i=='9':
if i in ['0','1','2','3','4','5','6','7','8','9']:
continue
print(i,end="")
print()
方法二:
知识拓展:在python中,默认是按照ascii的大小比较的;
字符串按位比较,两个字符串第一位字符的ascii码谁大,
字符串就大,不再比较后面的;
第一个字符相同就比第二个字符串,以此类推。
注意:空格的ascii码是32,空(null)的ascii码是0,
大写字母和小写字母的ascii不同。
def delNumber2(str1):
a=[]
for i in range(len(str1)):
if str1[i]<'0' or str1[i]>'9':
a.append(str1[i])
str1=''.join(a)
print(str1)
方法三:
知识拓展: ord()可以将字符转换为ASCII码 chr()可以将ASCII码转换为字符:
def delNumber3(str1):
for i in str1:
if ord(i)>=48 and ord(i)<=57:
continue
print(i,end="")
print()
调用函数
str1=input('请输入一段包含有数字和字母的字符串:')
delNumber1(str1)
delNumber2(str1)
delNumber3(str1)
运行结果