iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
2
AI & Data

python 入門到分析股市系列 第 3

[Day03]Python 基礎語法 - 變數、運算子、運算元、判斷式

  • 分享至 

  • xImage
  •  

安裝環境

第一天 : 安裝Anaconda
第二天 : 安裝Jupyter notebook

導讀

本次Python30天分為幾個部分

  1. 基礎語法[Day3~Day5]
  2. 儲存資料[Day6]
  3. 第三方函式庫-Numpy[Day7~Day9]
  4. 第三方函式庫-Pandas[Day10~Day14]->比預想中還多
  5. 第三方函式庫-Matplotlib、Seaborn[Day15~Day19]->目前正在這裡持續中,所以可能之後的講的主題會有所改變,到時候會再回來改這篇文章
  6. 統計學基礎[Day20~Day22]
  7. 金融理論[Day22~.....]->沒意外的話,應該就是這個時間要開始demo金融

因為作者本身也是第一次學習Python和寫程式文章,所以編排上會有點亂,觀念可能也會錯誤,如果有疑問可以提出一起討論,等30天完成之後有其他時間會將之前寫的文章加入一些想法。

這篇文章的程式輸出結果會在程式下方顯示一樣也是用程式碼區塊的方式顯示。會再加上輸出結果。

示範的程式碼放在github上面,接下來正式進入第三天課程


Python基礎語法

介紹python一些簡單的語法,不同於其他的語法(ex Java、C..)需要對變數做明確的宣告型別,Python宣告變數不用特別宣告型別。

  • 名詞解釋
    • 變數:隨時可以改變內容的容器名稱,當設計者使用一個變數時,應用程式就會配置一塊記憶體給此變數使用,以變數名稱作為辨識此塊記憶體的標誌,系統會依據資料型態決定配置的記憶體大小。
    • 運算子:指定資料做哪一種運算。 ex +,-,*....
    • 運算元:進行運算的資料。 ex 2 + 3 -> 2和3是運算元
    • 單元運算子:只有一個運算元。 ex「-100」中的「-」(負)
    • 二元運算子:具有兩個運算元。 ex「100 - 80」中的「-」(減)

變數

  • 宣告變數
    python變數不須宣告就可以使用。例如以下程式(在Javascript中需要使用 let, const)。
    在Python中使用「#」當註解符號

    fruit = "香蕉" #fruit 的資料型態為字串
    

    同一列指定多個變數,變數之間用「,」分隔

    age, animal = 18, "兔子" #age的值為18, animal的值為 "兔子"
    
  • 刪除變數

    del fruit
    
  • 命名規則
    1.不可以取保留字
    2.變數名稱第一個字母必須是大小寫字母、_、中文(pytho3.x支援)
    3.只能由大小寫字母、數字、 _ 、 中文(pytho3.x支援)組成變數名稱
    4.英文字母大小寫視為不同的變數名稱

資料型態

python最簡單的資料型別
1.數值(有分整數和浮點數)
2.布林(Ture,False)
3.字串(文字字元)
以下示範這些資料型態如何宣告

  num1 = 34 #整數
  num2 = 67.83 #浮點數
  num3 = 1.0e8 #代表1乘以10的8次方
  flag1 = True #bool型態 T為大寫
  flag2 = False #bool型態 F為大寫
  str1 = "這是字串" #可使用跳脫字元「\」來包含特殊字元

跳脫字元介紹
跳脫字元

print及type及input指令

  • print的語法

     print(項目1[,項目2, ...., sep="分隔字元", end="結束字元"])
    

    以下示範print多個數字並且使用分隔字元和結束字元

    print(100, 200, 300, sep="&", end="--")
    
    # 輸出結果
    100&200&300--
    
  • 格式化print
    print命令支援參數格式化功能,%s代表字串、%d代表數字、%f代表浮點數

    print("%s 總冠軍" % ("兄弟象"))
    print("最終的比數為 %d:%d" % (2,7))
    print("%s 贏的機率為 %8.2f%s " % ("兄弟象",99.9,"%")) #(8代表固定輸出8個字元(含小數點))
    
    # 輸出結果
    兄弟象 總冠軍
    最終的比數為 2:7
    兄弟象 贏的機率為    99.90% 
    
  • print也支援字串format方法列印字串和整數

    print("{}{}年的參加隊伍為{}".format("鐵人賽",2018,"浪流連九程式匠自然產生的佛系碼農專區"))
    
    # 輸出結果
    鐵人賽2018年的參加隊伍為浪流連九程式匠自然產生的佛系碼農專區
    
  • type命令會取得物件的資料型態

    print(type(2018))
    print(type("浪流連九程式匠自然產生的佛系碼農專區"))
    print(type(True))
    
    # 輸出結果
    <class 'int'>
    <class 'str'>
    <class 'bool'>
    
  • input 命令
    input 是讓使用者由鍵盤輸入資料,print是輸出資料

    winner = input("請輸入2018中華職棒總冠軍?")
    
    # 輸出結果
    請輸入2018中華職棒總冠軍?
    

資料型態轉換

  • int() 轉換為整數
  • float() 轉換為浮點數
  • str() 轉換為字串
    除了以上的方法,運算也會轉換,以下示範布林值和數字的轉換
num2 = 5 + True      #True 轉換為1
num3 = 5 + False     #False 轉換為0
print('num2---->',num2)
print('num3---->',num3)
# 輸出結果
num2----> 6
num3----> 5

運算子

Python有以下基礎的運算子

  • 算術運算子
    +, -, *, /, %, //(取得整除的商數), ** (次方, 7**2 = 49)

  • 關係運算子
    ==, !=, >, <, >=, <=

  • 邏輯運算子
    not, and, or

  • 複合指定運算子
    +=, -=, *=, /=, %=, //=, **=

  • 判斷式
    python 語言以冒號「:」以及縮排來表示程式區塊

    winner = input("請輸入2018鐵人賽參加隊伍是否有「浪流連九程式匠自然產生的佛系碼農專區」,請輸入是Yes or No?")
    if(winner=="Yes"):
      print("恭喜你答對了!!")
    else:
      print("不好意思你答錯了~><~")
    
    # 輸出結果
    請輸入2018鐵人賽參加隊伍是否有「浪流連九程式匠自然產生的佛系碼農專區」,請輸入是Yes or No?Yes
    恭喜你答對了!!
    
  • 巢狀判斷式

    score = int(input("請「浪流連九程式匠自然產生的佛系碼農專區」有幾人參加?"))
    if(score>=3):
        if(score==9):
         print("沒錯!!剛好就是9人")
        elif(score>=7):
         print("已經非常接近了")
        else:
         print("不好意思,離正確答案還有一段距離")
    else:
     print("沒有這麼少人喔")
    

上一篇
[Day02]使用 Jupyter notebook來寫python
下一篇
[Day04]Python 基礎語法 - list、tuple、dict、for、while
系列文
python 入門到分析股市30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
abc2700
iT邦新手 5 級 ‧ 2022-11-02 14:19:58

版主您好,我有問題想要請教
https://ithelp.ithome.com.tw/upload/images/20221102/20154110MiBJkW39ve.jpg
第一張圖片的部分,未輸入回答前已跑出NO的答案

https://ithelp.ithome.com.tw/upload/images/20221102/201541108DRiyRQqPV.jpg
第二章圖片的部分,輸入了YES卻未得到回應
請問哪邊需要修正嗎?
謝謝

carter_k iT邦新手 5 級 ‧ 2023-03-25 16:44:18 檢舉

設定"Yes"要輸入Yes就可答對,不是yes、YES

我要留言

立即登入留言