---
# System prepended metadata

title: 資研 3/15 社課講義
tags: [社課講義, 資研]

---

# 資研 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/)