在Python與Ruby中的語言轉換
今天在整理之前AC上交的作業,突發奇想把那些全用Python重寫過一次
兩個雖然都是很直觀的語言~不過果然還是需要經過一些簡單的轉換。
在此做個簡單的紀錄提醒自己關於字串的處理。
其中一份作業是這個樣子的
請判斷輸入的陣列內容,若其字元為偶數 則回傳其顛倒的內容,為奇數的話則回傳其字元數,舉例來說 [“Danny","is","a","boy"] 應回傳[5,"si",1,3]
相當簡單的東西,看一下我在Ruby是怎麼處理的(Markdown的部分我之後再研究 先用複製貼上處理程式碼。
#歡迎訊息
puts “你好!我會把你說的話變成奇怪的陣列! 試著說些什麼吧!"
#將使用者的輸入句子分割並存為陣列
input = gets.chomp!.split
#建立一個空陣列儲存要回傳的內容
weird = []
#迭代陣列中每個元素並進行以下判斷
input.each do |i|
#若元素字數為偶數,則將元素內容反轉 並存入新的空白陣列
if i.size % 2 == 0
weird.push(i.reverse)
#若元素字數為奇數,則將元素大小存入新的空白陣列
else
weird.push(i.size)
end
end
#顯示回傳之陣列
p weird
在Ruby中字串有reverse這個方法可以使用,但Python中僅適用於List,只好用slice或迴圈的方式處理,下面的範例是處理單一字串 要處理陣列請善用迴圈~你懂意思的
x = input(“PLz enter a string!")
if len(x) % 2 == 0:
print (len(x))
else:
print (x[::-1])
順便複習一下slice的用法
基礎語法 slice[a:b:c] a表示起始位置 b為終點(不包含) c為資料間隔
假設今天存在一陣列
a = [10, 20, 30, 40, 50, 60, 70, 80] 利用slice後會有以下的結果
print a[1:3]#[20,30]
print a[:3] #[10,20,30]
print a[1:] # [20, 30, 40, 50, 60, 70, 80]
print a[::-1] #[80,70,60,50,40,30,20,10]
真的該去學學怎麼在wordpress中呈現好看的程式碼了 嘖嘖