文章目录
- (1)题目描述
- (2)Python3实现
- (3)知识点详解
- 1、input():获取控制台(任意形式)的输入。输出均为字符串类型。
- 1.1、input() 与 list(input()) 的区别、及其相互转换方法
- 2、print() :打印输出。
- 3、str.isdigit(),str.isnumeric(),str.isdecimal():检查字符串是否只包含十进制数字,返回布尔值。
- 4、str.replace():将指定字符或子串替换为另一种字符。原字符串不改变。
(1)题目描述
(2)Python3实现
while (True):
try:
str1 = input()
ret = ''
for char in str1:
if char.isdigit():
ret += '*' + char + '*'
else:
ret += char
result = ret.replace('**', '')
print(result)
except:
break
(3)知识点详解
1、input():获取控制台(任意形式)的输入。输出均为字符串类型。
str1 = input()
print(str1)
print('提示语句:', str1)
print(type(str1))
'''
asd123!#
提示语句: asd123!#
<class 'str'>
'''
常用的强转类型 | 说明 |
---|---|
int(input()) | 强转为整型(输入必须时整型) |
list(input()) | 强转为列表(输入可以是任意类型) |
1.1、input() 与 list(input()) 的区别、及其相互转换方法
- 相同点:两个方法都可以进行for循环迭代提取字符,提取后都为字符串类型。
- 不同点:
str = list(input())
将输入字符串转换为list类型,可以进行相关操作。如:str.append()
- 将列表转换为字符串:
str_list = ['A', 'aA', 2.0, '', 1]
- 方法一:
print(''.join(str))
- 方法二:
print(''.join(map(str, str_list)))
备注:若list中包含数字,则不能直接转化成字符串,否则系统报错。
- 方法一:
print(''.join([str(ii) for ii in str_list]))
- 方法二:
print(''.join(map(str, str_list)))
map():根据给定函数对指定序列进行映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。
(1) 举例说明:若list中包含数字,则不能直接转化成字符串,否则系统报错。
str = ['25', 'd', 19, 10]
print(' '.join(str))
'''
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/test.py", line 188, in <module>
print(' '.join(str))
TypeError: sequence item 3: expected str instance, int found
'''
(2)举例说明:若list中包含数字,将list中的所有元素转换为字符串。
str_list = ['A', 'aA', 2.0, '', 1]
print(''.join(str(ii) for ii in str_list))
print(''.join([str(ii) for ii in str_list]))
print(''.join(map(str, str_list))) # map():根据给定函数对指定序列进行映射。即把传入函数依次作用到序列的每一个元素,并返回新的序列。
'''
AaA2.01
AaA2.01
AaA2.01
'''
2、print() :打印输出。
【Python】print()函数的用法
x, y = 1, 9
print('{},{}' .format(x, y)) # 打印方法一
print('*'*10) # 打印分割符
print(x, ',', y) # 打印方法二
'''
1,9
**********
1 , 9
'''
3、str.isdigit(),str.isnumeric(),str.isdecimal():检查字符串是否只包含十进制数字,返回布尔值。
中文汉字和英文数字的unicode编码范围
方法 | Unicode数字 | 全角数字(双字节) | 罗马数字 | 汉字数字 | byte数字(单字节) | 浮点数 | 负数 | 科学计数法 | 二进制 | 八进制 | 十六进制 |
---|---|---|---|---|---|---|---|---|---|---|---|
isdecimal() | True | True | False | False | Error | False | False | False | False | False | False |
isdigit() | True | True | False | False | True | False | False | False | False | False | False |
isnumeric() | True | True | True | True | Error | False | False | False | False | False | False |
str = '123'
print(str.isdecimal())
print(str.isdigit())
print(str.isnumeric())
'''
True
True
True
'''
4、str.replace():将指定字符或子串替换为另一种字符。原字符串不改变。
函数说明:
str.replace('old_str', 'new_str', count)]
输入参数:
- old_str:指定待替换的字符或子串
- new_str:替换的字符或子串
- count:替换的次数,默认全部替换。
备注:当查看字符串时,发现原字符串并没有发生改变,说明str.replace()函数并不对原有的字符串进行改变。
str1 = '1112 QQQ QQQ 444 QQQ'
str1.replace('1', '5') # 不改变原字符串
print(str1)
str2 = str1.replace('1', '5') # 默认全部替换
print(str2)
str3 = str1.replace('Q', 'g', 7) # 指定替换次数
print(str3)
'''
1112 QQQ QQQ 444 QQQ
5552 QQQ QQQ 444 QQQ
1112 ggg ggg 444 gQQ
'''