1. 程式人生 > 其它 >自學python的第20多天

自學python的第20多天

    今天覆習了一下之前視訊裡學的內容,講的是for迴圈,視訊老師留了一道題是把阿拉伯數字切換為中文大寫,這是我第二次複習這個知識點和習題了,完事感覺還是沒學通這個知識點,下面是我的半看筆記半利用知識點寫的程式碼。

x = ['零', '壹', '貳', '叄', '肆', '伍', '陸', '柒', '捌', '玖']
y = ['圓', '拾', '佰', '仟', '萬']
a = input('請輸入金額:')
b = len(a)
c = 0

for i in a:

print(x[int(a[c])] + y[int(b)-1], end='')
# print()
c = c + 1
b = b - 1
print('整')
print(type(i))


 下面是第一次半看筆記半利用知識點寫的,感覺更差勁了,完全是複雜化了這個過程而且還效率極低

x = ['零', '壹', '貳', '叄', '肆', '伍', '陸', '柒', '捌', '玖']
y = ['圓', '拾', '佰', '仟', '萬']
k = input('請輸入:')
for i in x:
if int(len(k)) == 5:
print(
x[int(k[0])] + y[int(len(k) - 1)] + x[int(k[1])] + y[int(len(k) - 2)] + x[int(k[2])] + y[int(len(k) - 3)] +
x[int(k[3])] + y[int(len(k) - 4)] + x[int(k[4])], end='')
elif int(len(k)) == 4:
print(x[int(k[0])] + y[int(len(k) - 1)] + x[int(k[1])] + y[int(len(k) - 2)] + x[int(k[2])] + y[
int(len(k) - 3)] + x[int(k[3])], end='')
elif int(len(k)) == 3:
print(x[int(k[0])] + y[int(len(k) - 1)] + x[int(k[1])] + y[int(len(k) - 2)] + x[int(k[2])], end='')
elif int(len(k)) == 2:
print(x[int(k[0])] + y[int(len(k) - 1)] + x[int(k[1])], end='')
elif int(len(k)) == 1:
print(x[int(k[0])])
else:
print('輸入有誤')
print('圓整')

然而老師給出的最優解是下面這段,很精緻精闢的感覺
x = ['零', '壹', '貳', '叄', '肆', '伍', '陸', '柒', '捌', '玖']
y = ['圓', '拾', '佰', '仟', '萬']
a = input('請輸入金額:')
b = len(a)
for i in a:
b = b - 1
# print(x[int(i)])
# print(y[b])
print(f'{x[int(i)]}{y[b]}', end='')
print('整')

總結:學過的知識點要多複習,也要多練習自己敲程式碼。
子曰:學而時習之,不亦樂乎!