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