# 資研 3/15 社課講義 [**提問表單**](https://forms.gle/z4dPC1JPV6uA2q9w7) --- ## 字串 Strings 1. 可以用`'`或是`"`表示(單引號或雙引號) ```python= print( 'Hello, world!' ) print( "Hello, world!" ) ``` 2. 多行字串以`'''`或是`"""`表示 ```python= print('''A is for appele. B is for bug.''') ``` 3. index ```python= s = '0123456789' print(s[0]) # 輸出: 0 print(s[:-1]) # 輸出: 012345678 print(s[2:]) # 輸出: 23456789 ``` 4. for迴圈 迭代 ```python= s = '0123456789' for i in s: print(i, end=', ') # 輸出: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ``` 5. 組合 ```python= s1 = 'Hello' s2 = 'world!' print(s1 + s2) # 輸出: Helloworld! print(s1, s2) # 輸出: Hello world! ``` 6. f-string (format) >用在要打的文字中有穿插變數的時候 ```python= name = 'John' age = 18 # 寫法一 print(f'I am {name} ,and my age is {age}') # 寫法二 print('I am {} ,and my age is {}'.format(name, age)) # 輸出: I am John ,and my age is 18 ``` 7. 各種函式 | function | meaning | function | meaning | |:---------------:|:----------------:|:-------------:|:------------------------:| | len(s) | 取長度 | s.count() | 計算出現次數 | | s.upper() | 轉成大寫 | s.find() | 回傳指定index | | s.lower() | 轉成小寫 | s.isalnum() | 判斷是不是字母或數字 | | s.strip() | 去除空白 | s.isalpha() | 判斷是不是字母 | | s.replace(a, b) | 用b取代a | s.islower() | 判斷是不是小寫 | | s.split() | 切成列表 | s.isupper() | 判斷是不是大寫 | | s.capitalize() | 把第一個轉成大寫 | s.isnumeric() | 判斷是不是數字 | | s.casefold() | 轉成小寫 | ''.join() | 把列表(或元組)轉成字串 | ```python= # len() s = '12345' print(len(s)) # 輸出: 5 # upper s = 'hello, world!' print(s.upper()) # 輸出: HELLO, WORLD! # lower s = 'Hello, World!' print(s.lower()) # 輸出: hello, world! # strip s = ' hello, world ! ' print(s.strip()) # 輸出: hello, world ! # replace s = 'Hello, wold!' print(s.replace('wold', 'world')) # 輸出: Hello, world! # split s = 'Monday Tuesday Wednesday Thursday Friday' print(s.split()) # 輸出: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'] # capitalize s = 'today is Friday.' print(s.capitalize()) # 輸出: Today is friday. # casefold s = 'KGHS' print(s.casefold()) # 輸出: kghs # count s = 'Monday Tuesday Wednesday Monday Friday' print(s.count('Monday')) # 輸出: 2 # find s = 'Monday Tuesday Wednesday Tuesday Friday' print(s.find('Tuesday')) # 輸出: 7 # isalnum s = '123abc' print(s.isalnum()) # 輸出: True # isalpha s = '123abc' print(s.isalpha()) # 輸出: False # islower s = '123abc' print(s.islower()) # 輸出: True # isupper s = '123abc' print(s.isupper()) # 輸出: False # isnumeric s = '123abc' print(s.isnumeric()) # 輸出: False # join t = ('Monday', 'Tuesday') print(''.join(t)) # 輸出: MondayTuesday ``` 8. 特殊字元 [**連結**](https://www.w3schools.com/python/python_strings_escape.asp) ## 練習 1. 請寫出一個程式可以將使用者輸入的字串反轉 ```python= s = input() for i in range(len(s)-1, -1, -1): print(s[i], end='') ``` 2. 請寫出一個程式可以將使用者輸入的字母後移一個(a->b, b->c) ```python= s = input() ascii = ord(s) print(chr(ascii + 1)) ``` --- ## **練習題** **Zerojudge** [**連結**](https://zerojudge.tw/) --- ## 補充資料 **推薦網站:**[**W3Schools**](https://www.w3schools.com/)