想实现这样一个程序:任意输入一个字符串,要求在字母与数字的衔接处加一个‘-’,比如:输入FO123,等到得到FO-123,如果输入FO-123,输出的还是FO-123,如果不是字母和数字衔接组合,则原样输出,比如FO~123,或者FOFO,或者1234,或者~WER12,都是原样输出。
程序原码是这样:
import string
s = input("please input astring:")
leng = len(s)
index = 0
for key in s:
index=index+1
if key in string.ascii_letters: # string.ascii_letters是所有大小写字a-z,A-Z字符
continue
elif key in string.digits:
if index == 1: # 第一个字符不可以是数字,如果是数字,就跳出
break
s = s[:index-1]+'-'+s[index-1:] #重新组合,之后跳出
break
else:
break #第一个字符不是字母不是数字,直接跳出
print(s)
下面是程序运行效果:
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
================== RESTART: C:\Users\jiess\Documents\kk.py ==================
please input a string:FO123
FO-123
>>>
================== RESTART: C:\Users\jiess\Documents\kk.py ==================
please input a string:FO-123
FO-123
>>>
================== RESTART: C:\Users\jiess\Documents\kk.py ==================
please input a string:fo~123
fo~123
>>>
================== RESTART: C:\Users\jiess\Documents\kk.py ==================
please input a string:1234
1234
>>>
================== RESTART: C:\Users\jiess\Documents\kk.py ==================
please input a string:~FOFO
~FOFO
>>>