image

亞洲大學基礎程式設計教材(AUP110-Fundamentals of Programming)

Open In Colab

#Week3 Python的變數和運算

image

Topic 1(主題1)-輸入一個整數或浮點數

Python中使用input()函數讀入輸入的資料。

呼叫一次input()函數會輸入一個字串。

如果我們要輸入一個整數或浮點數。可以使用int()或float()函數

Step 1: 輸入一個整數

instr = input('Please input your score:')
score = int(instr)  #變整數
print(score)      #列印變數的值
print(type(score))   #列印變數的型別
---------------------------------------------------------------------------
StdinNotImplementedError                  Traceback (most recent call last)
/tmp/ipykernel_782/3111976663.py in <module>
----> 1 instr = input('Please input your score:')
      2 score = int(instr)  #變整數
      3 print(score)      #列印變數的值
      4 print(type(score))   #列印變數的型別

~/.local/lib/python3.8/site-packages/ipykernel/kernelbase.py in raw_input(self, prompt)
   1001         """
   1002         if not self._allow_stdin:
-> 1003             raise StdinNotImplementedError(
   1004                 "raw_input was called, but this frontend does not support input requests."
   1005             )

StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.

Step 2: 輸入一個浮點數

instr = input('Please input your score:')
score = float(instr)  #變浮點數
print(score)      #列印變數的值
print(type(score))   #列印變數的型別
  • Python 型別轉換函數

  • int() #變整數

  • float() #變浮點數

  • str() #變字串

  • 變數名稱=int(字串變數)

  • 變數名稱=str(數值變數)

Topic 2(主題2)-算術運算子和表示式(expressions)

數值運算符號(Arithmetic Operators)

+ - * / #加減乘除
** #次方
// #商
%  #餘數

Step 1: 加減乘除

print(1 + 2)
print(3 - 4)
print(5 * 6)
print(12 / 5)
print(1.3 + 2)
print(3 - 4.2)
print(5 * 6.5)
print(10.0 / 5)

Step 2: 商和餘數

print(23 / 5)
print(23 // 5)
print(23 % 5)

Step 3: 次方

print(23 * 2)
print(23 ** 2)

##Topic 3: 運算子優先序(Operator precedence)

Step 1: 先乘除後加減, 括號優先

print(3 * 4 + 5)  #先乘除後加減
print(3 * (4 + 5))#小括號 ()優先

Step 2: 次方比加減乘除優先

print(1 * 2 ** 3)  #次方比乘除優先
print(1 **2 + 3)   #次方比加減優先

Topic 4(主題3)-標準庫math的應用

Step 1: 計算pi 和sin(\(\pi/3\)) 函數

pi = 3.14159
sin(pi/3)

Step 2: 使用math標準庫的pi 和sin 函數

import math
print(math.pi)
print(math.sin(math.pi/3))

Step 3: 使用as

import math as m
print(m.pi)
print(m.sin(m.pi/3))

Step 4: 使用標準庫math的角度(degree)和弧度(radian)轉換

import math as m
print(m.degrees((math.pi/3)))
print(m.radians(60))

Topic 5: print()函數的參數

Step 1: Hello World with 其他參數

  • sep = “…” 列印分隔 end=”” 列印結尾

  • sep: string inserted between values, default a space.

  • end: string appended after the last value, default a newline.

print('Hello World!') #'Hello World!' is the same as "Hello World!"
help(print) #註解是不會執行的
print('Hello '+'World!')
print("Hello","World", sep="+")
print("Hello");  print("World!")
print("Hello", end=' ');print("World")
print("Hello\nWorld!")
print("Hello","World!", sep="\n")

Step 2:Escape Sequence (逸出序列)

  • \newline Ignored

  • \ Backslash ()

  • ‘ Single quote (‘)

  • ” Double quote (“)

  • \a ASCII Bell (BEL)

  • \b ASCII Backspace (BS)

  • \n ASCII Linefeed (LF)

  • \r ASCII Carriage Return (CR)

  • \t ASCII Horizontal Tab (TAB)

  • \ooo ASCII character with octal value ooo

  • \xhh… ASCII character with hex value hh…

txt = "We are the so-called \"Vikings\" from the north."
print(txt)

Topic 6: 多行的字串

Step 1: 使用 字串尾部的\來建立長字串

iPhone11='iPhone 11是由蘋果公司設計和銷售的智能手機,為第13代iPhone系列智能手機之一,亦是iPhone XR的後繼機種。\
其在2019年9月10日於蘋果園區史蒂夫·喬布斯劇院由CEO蒂姆·庫克隨iPhone 11 Pro及iPhone 11 Pro Max一起發佈,\
並於2019年9月20日在世界大部分地區正式發售。其採用類似iPhone XR的玻璃配鋁金屬設計;\
具有6.1英吋Liquid Retina HD顯示器,配有Face ID;並採用由蘋果自家設計的A13仿生晶片,\
帶有第三代神經網絡引擎。機器能夠防濺、耐水及防塵,在最深2米的水下停留時間最長可達30分鐘。'
print(iPhone11)

Step 2: 使用六個雙引號來建立長字串 ‘’’ … ‘’’ 或 “”” … “””

iPhone11='''
iPhone 11是由蘋果公司設計和銷售的智能手機,為第13代iPhone系列智能手機之一,亦是iPhone XR的後繼機種。
其在2019年9月10日於蘋果園區史蒂夫·喬布斯劇院由CEO蒂姆·庫克隨iPhone 11 Pro及iPhone 11 Pro Max一起發佈,
並於2019年9月20日在世界大部分地區正式發售。其採用類似iPhone XR的玻璃配鋁金屬設計;
具有6.1英吋Liquid Retina HD顯示器,配有Face ID;並採用由蘋果自家設計的A13仿生晶片,
帶有第三代神經網絡引擎。機器能夠防濺、耐水及防塵,在最深2米的水下停留時間最長可達30分鐘。'''
print(iPhone11)
iPhone11="""
iPhone 11是由蘋果公司設計和銷售的智能手機,為第13代iPhone系列智能手機之一,亦是iPhone XR的後繼機種。
其在2019年9月10日於蘋果園區史蒂夫·喬布斯劇院由CEO蒂姆·庫克隨iPhone 11 Pro及iPhone 11 Pro Max一起發佈,
並於2019年9月20日在世界大部分地區正式發售。其採用類似iPhone XR的玻璃配鋁金屬設計;
具有6.1英吋Liquid Retina HD顯示器,配有Face ID;並採用由蘋果自家設計的A13仿生晶片,
帶有第三代神經網絡引擎。機器能夠防濺、耐水及防塵,在最深2米的水下停留時間最長可達30分鐘。"""
print(iPhone11)

Toic 7: 原始碼的字元編碼 (encoding)

預設 Python 原始碼檔案的字元編碼使用 UTF-8。在這個編碼中,世界上多數語言的文字可以同時被使用在字串內容、識別名 (identifier) 及註解中 — 雖然在標準函式庫中只使用 ASCII 字元作為識別名,這也是個任何 portable 程式碼需遵守的慣例。如果要正確地顯示所有字元,您的編輯器需要能夠認識檔案為 UTF-8,並且需要能顯示檔案中所有字元的字型。

如果不使用預設編碼,則要聲明檔案的編碼,檔案的第一行要寫成特殊註解。語法如下:

# -*- coding: encoding -*-

其中, encoding 可以是 Python 支援的任意一種 codecs。

比如,聲明使用 Windows-1252 編碼,源碼檔案要寫成:

# -*- coding: cp1252 -*-

第一行的規則也有一種例外情況,在源碼以 UNIX “shebang” line 行開頭時。此時,編碼聲明要寫在檔案的第二行。例如:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

Topic 8: MarkDown語法

Step 1: 標題

題語法是以1到數個 # 號開頭加上空格,例如:

# 標題一
## 標題二
### 標題三

Step 2: 分隔線

分隔線為插入3個以上的 * 或 -,可包含空格。

***
*****
- - -
---

Step 3: 粗體及斜體

粗體及斜體 通常會用來強調某些重點文字,語法如下:

**粗體**
*斜體*
***斜斜體***
~刪除~

Step 4: 清單

無序清單使用(*)(+)(-)作為標記:

* Red
* Green
+ Red
+ Blue
- Green
- Blue

有序清單使用數字接著小數點:

1. Bird
1. McHale
1. Parish