想實現這樣一個程序:任意輸入一個字符串,要求在字母與數字的銜接處加一個‘-’,比如:輸入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
>>>