iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
AI & Data

30天帶你從零基礎到Python爬蟲系列 第 10

[Day10] 迴圈小試身手 - 確認座標位置 & 取商數

  • 分享至 

  • xImage
  •  

大家早安,今天一樣是練習Day,要來練習兩個簡單的題目,分別是:確認座標位置和商數取到小數後10位,那就廢話不多說直接開始吧!

確認座標位置

先宣告三個變數,分別是迴圈的初始變數以及座標xy軸,再將指令放進去。

i, x, y = 0, 0, 0
instructions = "UDLRUUUR"

接下來就要開始跑迴圈了,看看執行完這一串指令最終的座標會落在哪。U是向上,也就是Y軸要+1、D是向下,Y-1、R是往右,X+1、L是往左,X-1。

while i < len(instructions):
    if instructions[i] == "U":
        y = y + 1
    elif instructions[i] == "D":
        y = y - 1
    elif instructions[i] == "R":
        x = x + 1
    elif instructions[i] == "L":
        x = x - 1
    i = i + 1
    print(x, y)

最後L條件的部分其實也可以寫else,畢竟是最後一種情況,但我想說全部列出來可能可讀性會好一些,另外你自己也可以試試用for迴圈寫這題!

商數取到小數後10位

這題或許你會想說明明就有相對應的函式可以馬上做到,但!這只是要拿來練習之前講到過的,不是真的想求小數位數啦~
一開始一樣先設定三個變數,一個是初始變數,剩下兩個就是除數和被除數,另外再設定一個digit,給它的值就是我要取的小數位數,ans的部分先把它寫好整數的0.,記得要包在字串裡面,待會每一個位數都會以字串的形式一個一個加進去。

i, a, b = 0, 2, 7
digit = 10
ans = "0."

那因為除法已經到小數的部分,被除數的地方要補0,既然是補0也就是10,所以迴圈一開始就先把被除數a10,第二步就是取商數了,運算子//就是直接取商數,再來第三步就是要算出餘數,如果要取餘數就是用運算子%,這樣就可以進入下一輪再*10再取商,總共跑十次就ok啦。

while i < digit:
    a10 = a * 10
    ans = ans + str(a10 // b)
    a = a10 % b
    i = i + 1
print(ans)

上一篇
[Day9] 迴圈小試身手 - 繪製星號三角形
下一篇
[Day11] 迴圈小試身手 - 凱薩密碼 & 估計圓面積
系列文
30天帶你從零基礎到Python爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言