PYTHON

Lesson 1

Lecturer : times1乘一

PYTHON簡介

Python

  • 原意是 「大蟒蛇」
  • Guido van Rossum 於 1991 (的聖誕夜)發明
  • 宗旨為 "Computer Programming for Everybody"
  • 設計哲學是「優雅」、「明確」、「簡單」

其實這才是PYTHON的來源→

Python特色

  • 直譯式語言
  • 可讀性高
  • 語法簡單
  • 物件導向
  • 模組極多
  • 功能強大

開發環境

  • 線上開發環境
  • 美觀
  • 使用容易
  • 設定簡單

因為裝python很麻煩

所以這學期我們就使用repl.it啦~

點擊sign up

註冊帳號~

建議使用google帳號

創建新檔案

語言選擇python

1.create

2.選擇語言

3.取檔案名稱

開始寫扣啦~

Hello World!

學習程式語言的第一步

C++

#include <iostream>
using namespace std;

int main(){
	cout<<"Hello world!\n";
    return 0;
}

python

print("Hello world!")

簡潔有力

輸出

Output

方法:print(*object , sep=' ', end='\n')

*object : 要輸出的東西,如果有複數個要以, 隔開

sep : 用來間隔多個東西,預設是空白

end : 指定結尾是什麼,預設是換行

print("Hello world!")
#輸出 Hello world!
print("one", "two", "three", sep='/', end=" :)")
#輸出 one/two/three :)
print()
#輸出 (換行)

#順帶一提 # 井字符號是註解

特殊字元

特殊字元 意義
\\ 就是一個反斜線
\n 換行
\t tab鍵
\0 空字元

反斜線 \ 

小測驗

試著用一行程式碼印出以下的文字吧

A: \\Today is our first python class!//

B: \\Oh Yeah!//

解答

print("A: \\\\Today is our first python class!//\nB: \\\\Oh Yeah!//")
#兩個\\會變成一個\
#\n換行

大家寫對了嗎~

例題練習

FGISCOJ 4452 (這ㄍ壞了)

fgiscoj under maintenance (?

zj c185

print("Hey",input())

變數

常用變數型別

英文名稱 中文名稱 型別轉換
int 整數 int()
float 小數(浮點數) float()
string 字串 str()
bool 布林值 bool()

宣告變數

方法:name = value

*注意到了嗎?

python不需要宣告變數的型別

電腦會自行判斷

那麼我們要如何知道變數的型別呢?

型別判斷

方法:type(object)

電腦會回傳物件的型別~

飯粒

a = "123"                    #將"123"賦值給a
print("a的型別是:", type(a))  #輸出a的型別

b = a                        #將a的值給b
b = int(b)                   #將b的型別轉換為整數
print("b的型別是:", type(b))  #輸出b的型別

'''
a的型別是: <class 'str'>
b的型別是: <class 'int'>
'''

變數限制&小技巧

因為太過複雜我懶得備課

所以自己去翻暑訓簡報~

多重賦值

連續賦值

命名限制

保留字

格式化輸出

好用的小技巧

  • 格式化字串
  • 字串的format()
  • 字串插值

格式化字串

Formatted string literals

方法:在要輸出的字串前加上f或F,

並把想插入的變數放入{}中

格式說明符:使用方法為{變數:格式說明符},可省略

常用的有    符點數:.位數f  可以指定小數位數

                   字串:整數         可以指定字串長度

                   整數:位數d       可以指定整數長度

示例

#格式化字串
name = "Justin"
age = 17
pi = 3.14159265358979323846

print(f"Hello, {name}")  
#Hello, Justin

print(f"{name:7}==>{age:3d},pi = {pi:.10f}") 
#Justin ==> 17,pi = 3.1415926536

字串的format()

方法:str.format()
format()中的字會填入字串中的大括號
可以利用索引值或名稱填入,預設是依序填入

示例

#字串的format()
name = "Justin"
A = 9
B = 5

print("Hello, {}".format(name))  
#Hello, Justin

print("B = {B}, A = {A}".format(A=9,B=5))
print("B = {1}, A = {0}".format(A,B))
print("A = {}, B = {}, A+B = {}".format(A,B,A+B))
'''
B = 5, A = 9
B = 5, A = 9
A = 9, B = 5, A+B = 14
'''

字串插值

string interpolation

方法:"string" % values

字串中所有的%會被values取代

可以利用各種格式說明符達成不同效果

是格式化輸出的舊方法
不推薦使用

想知道更詳細的格式化輸出說明請看
格式化輸出 和 格式說明符

示例

#字串插值
name = "Justin"
A = 1.414213562
B = 2.236067977

print("Hello, %s" %name)  
#Hello, Justin
#
print("A = %.4f" %A)
print("A = %.4f, B = %.3f" %(A,B))
'''
A = 1.4142
A = 1.4142, B = 2.236
'''

輸入

Input

方法:Input(<提示訊息>)

提示訊息 : 在input前,想要輸出的東西,可省略

*會預設輸入string 字串

示例

a = input("請輸入一串文字: ")
print("你剛剛輸入的文字是:", a)
'''
請輸入一串文字: ckefgisc
你剛剛輸入的文字是: ckefgisc
'''

如果輸入不換行,但要輸入多個變數ㄋ

一行輸入

方法:input().split("分割符號", 分割次數)

input():可以改成要切割的字串

分割符號 : 遇到甚麼符號要切一刀,預設是空白

分割次數: 要切幾刀,預設-1,也就是全切

可是一個一個轉型別好麻煩~

一次轉型別~

不是轉性別= =

方法:map(int, input().split())

這樣就可以一次轉型別囉~

如果想知道map的用法(中文版)

那就點下去ㄅ

終於有示例ㄌ

fruits = "apple/banana/orange/guava"
print(fruits.split("/",2))  #以/為切割點,切兩刀
#['apple', 'banana', 'orange/guava']

a, b, c = map(int, input().split())
print(a, b, c)
print(type(a))

'''
輸入: 1 2 3
輸出: 1 2 3
      <class 'int'>
'''

終於結束ㄌ~

是不是很簡單