ilsoviet1917 发表于 2021-8-27 11:06:07

问一个关于字符串操作的问题


str = input('str:')
re = []
for s in str:
    if s.isdigit():
      re.append(f'0{dicts}')

要求输入一个数字字符串,输出的时候在这个字符串前加一个0。
比如输入123,输出0123
但是我用上面的办法输出的是010203,请问怎么解决啊?

青出于蓝 发表于 2021-8-27 11:15:40

str = input('str:')
re = ''
f=1
for s in str:
    if s.isdigit():
      if f:
            re+=f"0{s}"
            f=0
      else:
            re+=s
    else:
      re+=s
      f=1
print(re)

冬雪雪冬 发表于 2021-8-27 11:28:31

s = input('str:')
if s.isdigit():
    print(f'0{s}')

白two 发表于 2021-8-27 12:23:30

字符串也是可迭代对象,用 for 循环遍历的话会一个字符一个字符的遍历
加一个列表放字符串就可以了,这样还可以给其他有需要的字符串加 0 ,如下:

str = input('str:')
str_lst =
re = []
for s in str_lst:
    if s.isdigit():
      re.append(f'0{s}')
print(re)


运行结果:
str:1123
['01123']

最后提醒一些,变量名最好别和模块名重复,像 re 是正则表达式的模块,你列表的变量名最好换成其他的

ilsoviet1917 发表于 2021-8-27 13:48:16

青出于蓝 发表于 2021-8-27 11:15


这个看不太懂,能解释一下吗?最后返回的是个字符串是吧?

叼辣条闯世界 发表于 2021-8-29 10:29:26

你们想的太复杂了
python支持字符串拼接
str = input('str:')
i= '0'
print(i +str)

ilsoviet1917 发表于 2021-8-30 09:57:40

string = input('Entre your str: ')
re = []

for s in string:
    if s.islower():
      re.append(s)
    elif s.isupper():
      re.append(f'UPPER{s}')
    elif s.isdigit():
      re.append(f'0{s}')
    else:
      re.append(s)

print(re)

这样出来还是010203

ilsoviet1917 发表于 2021-8-30 09:58:37

叼辣条闯世界 发表于 2021-8-29 10:29
你们想的太复杂了
python支持字符串拼接

string = input('Entre your str: ')
re = []

for s in string:
    if s.islower():
      re.append(s)
    elif s.isupper():
      re.append(f'UPPER{s}')
    elif s.isdigit():
      re.append(f'0{s}')
    else:
      re.append(s)

print(re)

这样出来还是010203

叼辣条闯世界 发表于 2021-8-30 11:25:58

本帖最后由 叼辣条闯世界 于 2021-8-30 11:34 编辑

ilsoviet1917 发表于 2021-8-30 09:58
string = input('Entre your str: ')
re = []



直接用加号啊
string = input('Entre your str: ')
i = '0'
string = i +string
print(string)

ilsoviet1917 发表于 2021-8-30 16:12:04

叼辣条闯世界 发表于 2021-8-30 11:25
直接用加号啊

没用的,你把你的思路带到我的那个代码里就不行了。
页: [1]
查看完整版本: 问一个关于字符串操作的问题