我想讓程序讓我們說,如果我的word_str是「這是'劍橋大學'例如。」如果單詞的長度大於3個字符,它將保留單詞的第一個和最後一個字母,並將單詞的內部加擾。我的問題是,它不正確地在單詞的開頭或結尾處用標點符號混淆單詞。我需要它來洗牌,以便標點符號保留在正確的索引中,然後保留單詞的第一個和最後一個字母,並在最後添加標點的單詞的內部進行混洗(如果有的話)。有任何想法嗎?如何從字符串中剝離標點符號,然後將其添加回相同的索引中?
def scramble_word(word_str):
char = ".,!?';:"
import random
if len(word_str) <= 3:
return word_str + ' '
else:
word_str = word_str.strip(char)
word_str = list(word_str)
scramble = word_str[1:-1]
random.shuffle(scramble)
scramble = ''.join(scramble)
word_str = ''.join(word_str)
new_word = word_str[0] + scramble + word_str[-1]
return new_word + ' '
爲什麼而忽略了標點符號不搶就在信嗎? – 2013-03-11 22:15:36
因爲程序規範要求我不要忽略標點符號 – Tyler 2013-03-11 22:25:42
但是如果你要把它放回**與以前的爭奪,這實質上完全模仿忽略它的結果,同時加擾字母數字字符。或者我錯過了什麼? – 2013-03-11 22:28:00