---
# System prepended metadata

title: python solution for zero judge

---

# python solution for zero judge 
###### Day 1: 2021/12/17
### [github 連結](https://github.com/tzuhao84/0j)
### 目前進度：
[a053](https://zerojudge.tw/ShowProblem?problemid=a053)
since 2022/3/6

可以先讓字典值轉list再乘上對應數值，再加上sum，去檢查第九碼，符合的話，輸出對應的英文字母。

### 解題日期：
a015: 2022/2/1
a017: 2022/2/3
a020: 2022/2/4
a021: 2022/2/13
a022: 2022/2/13
a024: 2022/2/14
a034: 2022/2/21
a038: 2022/2/22
a040: 2022/2/27
a042: 2022/2/27
a044: not yet
a053: 2022/3/6



## 觀念
* python 輸出換行：預設輸出後換行
* if else 用法：
```
if 條件A:
    結果Ａ
elif 條件Ｂ:
    結果Ｂ
else:
    其它結果
```
* print 輸出變數格式
```
a=7, b=3
1.print('a+b=',a+b)   => a+b= 10
2.print(f'a+b={a+b}') => a+b=10
差異在於第二種方法輸出時，少空一格

```
* 平方根
```
a**0.5
```
* [跳出迴圈]
```
break：強制跳出 ❮整個❯ 迴圈
continue：強制跳出 ❮本次❯ 迴圈，繼續進入下一圈
pass：不做任何事情，所有的程式都將繼續
```
* 餘數定理的運算子: 商數//, 餘數%
```
print(87//2)
>> 43
print(87%2)
>> 1
```
* [字典](https://medium.com/ccclub/ccclub-python-for-beginners-tutorial-533b8d8d96f3)
```
新增資料
dictName[key] = value

計算key的數目
len(dict)
```
* 接續下一行：\
```
data11=data21=data31=data41=data51=data61=data71=data81\
=data91=data101=data111=data121=data131=data141\
=data151=data161=data171=data181=data191=data201=data211\ 
= pd.DataFrame(columns=['w','ka','period'])

若是以逗號連接,可不加\
datas1 = [data11, data21, data31, data41, data51, data61, 
data71, data81, data91, data101, data111,data121,
data131,data141,data151,data161,data171,
data181,data191,data201,data211]
```



---

## 技巧
* [try except statement](https://pydoing.blogspot.com/2011/01/python-try.html)
```
a = 22
b = 33
 
try:
    if a < b:
        print(n)
except:
    print("except")
```
* [while True:](https://selflearningsuccess.com/python-while-loop/)
```
True 要用大寫
這是一個會一直持續下去的循環，通常會搭配break陳述句使用，來控制迴圈。
陳述的條件很多元，不僅止於這邊提到的，端看你的需求來訂出條件。

ex:
while [True for i in list if i in criteria]
```
* [讀取一行以空格分開的多個數據](https://blog.csdn.net/qq_36478460/article/details/81905679)
```
l = list(map(int,input().split()))
print(l)
```
* [解包list，不印出括號](https://www.delftstack.com/zh-tw/howto/python/list-without-brackets-python/)
```
lst = ['x','y','z']
print(*lst, sep = ',')
```
* [合併list成為一個字串](https://blog.csdn.net/DeniuHe/article/details/86905359)
```
a = ['周一','周二','周三','周四','周五','周六','周日']
s = "".join(a) 
>>周一周二周三周四周五周六周日

a = ['周一','周二','周三','周四','周五','周六','周日']
s = "*".join(a)
print(s)
>>周一*周二*周三*周四*周五*周六*周日

join 只限定於list 內都是string 型態
```
* 設置空的list，並指定大小
```
lst =[None]＊大小
```
* [floor](https://vimsky.com/zh-tw/examples/usage/python-math-floor-function.html)
```
import math  
x = 33.7
print (math.floor(x))
```
* [跳出程式](https://blog.csdn.net/Dontla/article/details/103344870)
```
import sys
sys.exit()
```
* [轉換ASCII](https://www.itread01.com/content/1550009362.html)
```
chr(ord(character)): 先轉成ASCII code, 再轉成字元
```

* [print 不換行]
```
print("Hello World!", end = '')
```
* [print list 方法](https://www.geeksforgeeks.org/print-lists-in-python-4-different-ways/)
```
# Python program to print list
# without using loop

a = [1, 2, 3, 4, 5]

# printing the list using * operator separated
# by space
print(*a)

# printing the list using * and sep operator
print("printing lists separated by commas")

print(*a, sep = ", ")

# print in new line
print("printing lists in new line")

print(*a, sep = "\n")

```
* [list 切割字串方法](https://selflearningsuccess.com/python-list/)
```
>>>print（list（'steak'））
['s', 't', 'e', 'a', 'k']
```

* [字典的key value 交換](https://blog.csdn.net/ssswill/article/details/86618553)
```
new_dict={v:k for k, v in dict.items()}
```
* [遍訪字典中所有的鍵( keys()方法 )](https://ithelp.ithome.com.tw/articles/10202396)
```
car = {"color":"black","brand":"toyota"} # 建立一個car字典裡面包含兩個鍵值對
for key in car.keys(): # keys()方法會讓for迴圈將每個鍵存到key變數中
    print("key : "+key) # 印出鍵
    
```
* [遍訪字典中所有的值( values()方法 )](https://ithelp.ithome.com.tw/articles/10202396)
```
car = {"color":"black","brand":"toyota"} # 建立一個car字典裡面包含兩個鍵值對
for value in car.values(): # values()方法會讓for迴圈將每個值存到value變數中
    print("value : "+value) # 印出值
```
* [新增字典key]
```
animal={}
animal['dog']=12
```
* [呼叫字典的元素](https://www.learncodewithmike.com/2019/12/python-dictionary.html)
```
dict.get(key)
```

* [初始化2D list]
```
>> mat=[[0 for x in range(5)]for i in range(2)]
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
```
*[產生等差數列](http://softcans.blogspot.com/2019/01/python-range-func.html)
```
range(start,end,step)
```

*檢查list 是否為空
```
len(list)==0
```

## other
1. 質數：prime
2. 因數：factor
3. 階乘：factorial
4. [python 視覺化網站](https://pythontutor.com/visualize.html#mode=edit)
5. [昌爸羅馬數字](http://www.mathland.idv.tw/history/roman.htm)
6. [羅馬數字換算](https://www.toolskk.com/roman-numerals-converter)


