iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
自我挑戰組

玩程式新手村 – C和Python系列 第 22

第22天 - C 和 Python的較量 (二)

  • 分享至 

  • xImage
  •  

當第一次接觸電腦程式語言,就像剛開始玩全新的網路遊戲,有很多基本知識要瞭解。這裡就幾個項目從 C 和 Python 的觀點來說明。

甚麼是布林 (Boolean) ?

布林(Boolean) 是電腦程式的邏輯資料類型,只有兩種值:「真 true」 和 「假 false」。

  • C 語言

    • C 語言標準 (C89) 沒有定義布林類型 (boolean data type),而以非 0 為「true 」、 0 為「 false」。
      當 運算結果 (例如 a > b) 為「true 」時,就以 int 型態的 1 表示,
      當 運算結果 (例如 t || f )為「 false」時,就以 int 型態的 0 表示。
    • C 語言標準 (C99 或 更新的版本) 提供了<stdbool.h> 檔案, 定義 bool 巨集 (macro) 代表_Bool,true 代表1,false 代表 0。
      _Bool 類型的變數只能是 0 或1 的整數,非 0 的數值都會被儲存為整數 1。
  • Python

    • Python 有內建的基本資料類型 bool,只有兩個可能的值:TrueFalse

    • 內建函數 bool( ) 可以用來檢查一個物件是否為 True 或 False。
      bool(var) 函數可以接受任何物件作為參數,如果參數值var 為數值 0,空字串 "",空串列 [],空字典 {},空集合 {}None ,函數 bool( ) 返回 False

    • 說文解字:

    Python資料類型

    | 數值 (Numeric) | 3, 3.6, 3+7j |
    | 字串 (String) | 'My String', "中文字串" |
    | 串列 (List) | [3.6, "Hi", 3, 23] |
    | 元組 (Tuple) | ('Hi', 'Joe', 3) |
    | 字典 (Dictionary) | {'name': 'Diana', 'age': 17} |
    | 集合 (Set) | {3, 7, 23} |

甚麼是運算子 (operator)

運算子(operator)是程式語言中的一種符號或關鍵字,用於對變數和數值,執行特定的操作或計算。

這裡 列出些常用的 運算子:

  • C 的 AND, OR, NOT 邏輯運算子: && , || , !
  • Python 邏輯運算子:and, or, not
  • C 和 Python 比較運算子:><, >= , <=,  ==!=
  • C 和 Python 算術運算子: + , - , * , / , %
  • C 和 Python 賦值運算子: = , += , -= , 等
  • 只有 C 有的 運算子: ++ , --
  • Python 可以使用 ** 進行指數運算,
    使用 // 進行 地板整數除法 (Floor Division),也就是除法後再執行 math.floor 留下整數部份,

用以下Python 程式碼說明:

var = True
print(type(var))    # <class 'bool'>
print(bool(var))    # True

a, b, c= 3, 6, 23
print(bool(a < c))  # True
print(a < c)        # True
print(bool(a == b))  # False
print(a < c and a == b) # False
x = []
print(bool(x))      # False

a += 5        # 3+5 = 8
c = a // 3    # 8 //3 => 2.66  => 2
b = -a // 3   # -8 // 3 => -2.666  => -3, 所以叫做 floor division
print(f"a: {a}, c: {c}, b: {b}")  # a: 8, c: 2, b: -3

上一篇
第21天 - C 和 Python的較量 (一)
下一篇
第23天 - C 和 Python的較量 (三)
系列文
玩程式新手村 – C和Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言