Re: [問題] 如何複製string

作者: luckid (luckid)   2019-10-05 23:49:26
※ 引述《rongrong421 (R1VERK1D)》之銘言:
: 我發現python的字串不能直接用賦值運算符號=複製
: 那請問要如何複製字串a的值到字串b呢?
小弟剛學python不久,想說用正則解決此問題,希望有所幫助,
寫得不對的地方請不吝指正,感謝:
#引用正則module
import re
print('type a word for guessing:')
#取得要猜的原始單字
ans=input()
#判定使用者輸入的字串
# 規則:需為至少兩個字母長的小寫英文單字(此處未判斷該單字是否確實存在)
regexAns=re.compile(r'^[a-z]{2,}$')
chkAns=regexAns.search(ans)
# 使用者輸入不合法字串則要求重新輸入
while chkAns is None:
print('please TYPE A WORD(at least 2 characters long) for guessing,thank
you.')
print('type a word for guessing:')
ans=input()
chkAns=regexAns.search(ans)
# 使用者輸入合法字串
# 開始猜單字
# 根據使用者輸入的字串產生"*"構成的字串存入final變數中 ex:若使用者輸入
"word",final變數會存入"****"
print("Start guessing")
final="*"*len(ans)
print(final)
# 要求使用者輸入字母
print('Please type alaphabet:')
guess=input()
# 判定使用者輸入是否合法
# 規則:需為單一字元的英文小寫字母
regexGuess=re.compile(r'^[a-z]{1}$')
chkGuess=regexGuess.search(guess)
regexFinal=re.compile(r'[\*]+')
chkFinal=regexFinal.search(final)
list_guess=[]
while True:
# 使用者輸入不合法
# 要求重新輸入
if chkGuess is None:
print('please TYPE ONE LOWER-CASE ALPHABET ONLY,thank you.')
guess=input()
chkGuess=regexGuess.search(guess)
# 使用者輸入合法字母
# 將該字母存入list_guess變數中
# 不去判斷字母有無重複,因為不影響之後的取代
list_guess.append(guess)
# 此處的正則表達規則:
# r[^字母1|字母2|...]
# ans變數是存放正確的單字解答
# 所以可用取代的方式,將ans變數中不符合r[^字母1|字母2|...]規則的字母全部取代
為"*"
# 例:
# 假設ans為"word"
# 使用者若輸入"a",則會將"不是a的字母"全部取代為"*",存入final中

Links booklink

Contact Us: admin [ a t ] ucptt.com