Python中不使用str函数将数字、括号等转换为字符串的方法有哪些?
不使用
str()函数转换值为字符串的Python实现方案 存在多种满足要求的实现方案,首先注意:Python中单独书写(5)等价于整数5,如果需要表示单元素元组需写为(5,)。以下方案均不需要显式调用str()函数,可实现将对应值转换为目标字符串:
- 方案1:使用f-string(Python3.6+支持)
f-string是内置的字符串格式化语法,可直接将值插入字符串模板中:
# 将整数5转为带括号的'(5)' num = 5 result = f"({num})" print(repr(result)) # 输出结果:'(5)' # 转换单元素元组为对应字符串 tpl = (5,) result = f"{tpl}" print(repr(result)) # 输出结果:'(5,)'
- 方案2:使用
%格式化运算符
该语法兼容所有Python版本,无需显式调用str():
num = 5 result = "(%d)" % num print(repr(result)) # 输出结果:'(5)'
- 方案3:使用字符串
format()方法
num = 5 result = "({})".format(num) print(repr(result)) # 输出结果:'(5)'
- 方案4:完全手动实现(无任何隐式字符串转换)
如果需要完全避开内置的字符串转换逻辑,可手动映射数字字符后拼接:
def convert_to_bracket_str(n): # 仅示例正整数场景的实现 digit_map = {0:'0', 1:'1', 2:'2', 3:'3', 4:'4', 5:'5', 6:'6', 7:'7', 8:'8', 9:'9'} digit_list = [] if n == 0: digit_list.append('0') else: temp = n while temp > 0: digit_list.append(digit_map[temp % 10]) temp = temp // 10 return '(' + ''.join(reversed(digit_list)) + ')' result = convert_to_bracket_str(5) print(repr(result)) # 输出结果:'(5)'
内容的提问来源于stack exchange,提问作者Codingbeginner
相关产品推荐
相关产品推荐

