2023年6月25日 星期日

ZeroJudge python解答:a003. 兩光法師占卜術

a003. 兩光法師占卜術 - 高中生程式解題系統 (zerojudge.tw)

我自己的解答:

b = list()
a = input()
b = a.split(' ')
M = int(b[0])
D = int(b[1])
S = (M*2+D)%3
if S == 0:
    print('普通')
elif S == 1:
    print('吉')
elif S == 2:
    print('大吉')
資料來源:
1.高中生解題系統
2.

ZeroJudge解題
ZeroJudge  python解答:a001. 哈囉

ZeroJudge python解答:a004. 文文的求婚
ZeroJudge python解答:a005. Eva 的回家作業
ZeroJudge python解答:a006. 一元二次方程式
ZeroJudge python解答:a009. 解碼器
ZeroJudge python解答:a010. 因數分解
ZeroJudge python解答:a015. 矩陣的翻轉
ZeroJudge python解答:a017. 五則運算
ZeroJudge python解答:a020. 身分證檢驗
ZeroJudge python解答:a021. 大數運算
ZeroJudge python解答:a022. 迴文
ZeroJudge python解答:a024. 最大公因數(GCD)
ZeroJudge python解答:a034. 二進位制轉換
ZeroJudge python解答:a038. 數字翻轉
ZeroJudge python解答:a040. 阿姆斯壯數
ZeroJudge python解答:a042. 平面圓形切割
ZeroJudge python解答:a044. 空間切割
ZeroJudge python解答:a053. Sagit's 計分程式
ZeroJudge python解答:a054. 電話客服中心
ZeroJudge python解答:a058. MOD3
ZeroJudge python解答:a059. 完全平方
ZeroJudge python解答:a065. 提款卡密碼
ZeroJudge python解答:a104. 排序
ZeroJudge python解答:a121. 質數又來囉
ZeroJudge python解答:a148. You Cannot Pass?!
ZeroJudge python解答:a149. 乘乘樂
ZeroJudge python解答:a215. 明明愛數數
ZeroJudge python解答:a216. 數數愛明明
ZeroJudge python解答:a224. 明明愛明明
ZeroJudge python解答:a225. 明明愛排列
ZeroJudge python解答:a244. 新手訓練 ~ for + if
ZeroJudge python解答:a248. 新手訓練 ~ 陣列應用
ZeroJudge python解答:a263. 日期差幾天
ZeroJudge  python解答:a694. 吞食天地二
ZeroJudge python解答:a738. 最大公约数
 





ZeroJudge python解答:a002. 簡易加法

 

我自己的解答:
b = list()
a = input()
b = a.split(' ')
print(int(b[0])+int(b[1]))



資料來源:
1.高中生解題系統
2.

ZeroJudge解題
ZeroJudge  python解答:a001. 哈囉

ZeroJudge python解答:a004. 文文的求婚
ZeroJudge python解答:a005. Eva 的回家作業
ZeroJudge python解答:a006. 一元二次方程式
ZeroJudge python解答:a009. 解碼器
ZeroJudge python解答:a010. 因數分解
ZeroJudge python解答:a015. 矩陣的翻轉
ZeroJudge python解答:a017. 五則運算
ZeroJudge python解答:a020. 身分證檢驗
ZeroJudge python解答:a021. 大數運算
ZeroJudge python解答:a022. 迴文
ZeroJudge python解答:a024. 最大公因數(GCD)
ZeroJudge python解答:a034. 二進位制轉換
ZeroJudge python解答:a038. 數字翻轉
ZeroJudge python解答:a040. 阿姆斯壯數
ZeroJudge python解答:a042. 平面圓形切割
ZeroJudge python解答:a044. 空間切割
ZeroJudge python解答:a053. Sagit's 計分程式
ZeroJudge python解答:a054. 電話客服中心
ZeroJudge python解答:a058. MOD3
ZeroJudge python解答:a059. 完全平方
ZeroJudge python解答:a065. 提款卡密碼
ZeroJudge python解答:a104. 排序
ZeroJudge python解答:a121. 質數又來囉
ZeroJudge python解答:a148. You Cannot Pass?!
ZeroJudge python解答:a149. 乘乘樂
ZeroJudge python解答:a215. 明明愛數數
ZeroJudge python解答:a216. 數數愛明明
ZeroJudge python解答:a224. 明明愛明明
ZeroJudge python解答:a225. 明明愛排列
ZeroJudge python解答:a244. 新手訓練 ~ for + if
ZeroJudge python解答:a248. 新手訓練 ~ 陣列應用
ZeroJudge python解答:a263. 日期差幾天
ZeroJudge  python解答:a694. 吞食天地二
ZeroJudge python解答:a738. 最大公约数
 





ZeroJudge python解答:a001. 哈囉

         最近嘗試寫解題系統的題目。看看是否能找出自己寫程式的弱項,進而補強自己的不足。於是找大神,搜尋關鍵是程式解題系統。首先,就是高中生解題系統
選擇註冊

發現可[以現有的Google帳號創建身分]
         
於是,開始解題。
word = input()
print('hello,',word)

資料來源:
1.高中生解題系統
2.

ZeroJudge解題
ZeroJudge  python解答:a001. 哈囉

ZeroJudge python解答:a004. 文文的求婚
ZeroJudge python解答:a005. Eva 的回家作業
ZeroJudge python解答:a006. 一元二次方程式
ZeroJudge python解答:a009. 解碼器
ZeroJudge python解答:a010. 因數分解
ZeroJudge python解答:a015. 矩陣的翻轉
ZeroJudge python解答:a017. 五則運算
ZeroJudge python解答:a020. 身分證檢驗
ZeroJudge python解答:a021. 大數運算
ZeroJudge python解答:a022. 迴文
ZeroJudge python解答:a024. 最大公因數(GCD)
ZeroJudge python解答:a034. 二進位制轉換
ZeroJudge python解答:a038. 數字翻轉
ZeroJudge python解答:a040. 阿姆斯壯數
ZeroJudge python解答:a042. 平面圓形切割
ZeroJudge python解答:a044. 空間切割
ZeroJudge python解答:a053. Sagit's 計分程式
ZeroJudge python解答:a054. 電話客服中心
ZeroJudge python解答:a058. MOD3
ZeroJudge python解答:a059. 完全平方
ZeroJudge python解答:a065. 提款卡密碼
ZeroJudge python解答:a104. 排序
ZeroJudge python解答:a121. 質數又來囉
ZeroJudge python解答:a148. You Cannot Pass?!
ZeroJudge python解答:a149. 乘乘樂
ZeroJudge python解答:a215. 明明愛數數
ZeroJudge python解答:a216. 數數愛明明
ZeroJudge python解答:a224. 明明愛明明
ZeroJudge python解答:a225. 明明愛排列
ZeroJudge python解答:a244. 新手訓練 ~ for + if
ZeroJudge python解答:a248. 新手訓練 ~ 陣列應用
ZeroJudge python解答:a263. 日期差幾天
ZeroJudge  python解答:a694. 吞食天地二
ZeroJudge python解答:a738. 最大公约数
 





2023年6月13日 星期二

如何在電腦教室學生機Windows 11 x64 安裝 Django 3.2.3 版與相關設定

       在電腦教室學生機Windows 11上要教學生Django網頁。那要如何進行?
01.安裝Python 3.9.13
    下載後,對此exe 點兩下,即可進行下一步、完成安裝。
02.測試Python 3.9.13 是否安裝成功
    (1)打開命令提示字元:

    (2)輸入 python --version

03.利用pip 安裝套件 virtualenv 與 virtualenvwrapper-win 來建立虛擬環境
命令列輸入
pip install virtualenv
pip install virtualenvwrapper-win

04.建立資料夾django
命令列輸入
md django

05.將資料夾django 建立虛擬環境
命令列輸入
python -m venv django

06.進入資料夾django 內,檢查內部
命令列輸入
cd django
dir

07.進入Scripts 檢查其內容
命令列輸入
cd Scripts
dir

08.啟動虛擬環境
命令列輸入
activate
09.回到 c:\Users\m\django\
命令列輸入
cd ..
10.利用pip 安裝套件 django 3.2.3 版
命令列輸入
pip install django==3.2.3
11.建立django 的專案 firstproject
命令列輸入
django-admin startproject firstproject
dir

2023年5月26日 星期五

關於國中資訊科技-自動化的補充教材- -瀏覽器自動化操作

        最近發現學生很喜歡CPS手速測試 - 鼠標點擊速度測試,測試滑鼠點擊次數。那有沒有辦法用程式來控制滑鼠、鍵盤,就可以登入Google ClassRoom。目前有兩種方法:1.pyautogui、 2.selenium。使用1.pyautogui,需要量測時間才能決定下一步。也就是無法用if -else 來控制。但是2.selenium 可以通過網址的變化來控制。也就是可以用if -else 來控制。
        現在就利用一個範例來說明2.selenium可以通過網址的變化來控制。此範例名稱為 Py20230526-0001.py。
        安裝套件:pip install selenium==2.53.6
        為何要指定2.53.6 版本,目前最新版本為4.9.1。理由是2.53.6版的網路資源最多。以後的版本則是語法變更,相對應的網路資源較少。
        下載Chrome的WebDriver:https://chromedriver.chromium.org/  
        那要如何知道Chrome版本?
        下載後,所得到的檔案chromedriver_win32.zip需解壓縮。解壓縮後,chromedriver.exe需與我們要編譯的Py20230526-0001.py同一目錄,或是在Py20230526-0001.py指定chromedriver.exe的位置(path)。
        那要如何知道搜尋列的class_name?

        程式名稱:Py20230526-0001.py
        程式內容:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Chrome("C:\\Users\\m\\selenium\\chromedriver.exe")
# 前往的網址
Url = "https://www.google.com.tw"
browser.get(Url)
browser.find_element_by_class_name("gLFyf").click()
browser.find_element_by_class_name("gLFyf").send_keys("Python Selenium")
browser.find_element_by_class_name("gLFyf").send_keys('\ue007')
# 取得目前網頁網址
CurrentUrl = browser.current_url
# 判別頁面更新則停留60秒
if CurrentUrl != Url:
    time.sleep(60)
browser.quit()

2023年5月19日 星期五

關於國中資訊科技-加密的補充教材-pdf 加密


        由於在資訊科技課程裡,提到[加密]與[解密]。希望讓學生能夠實作[pdf加密]與[pdf解密],那要如何實作?
        目前實作的方式,則是利用Word轉PDF,在PDF上加密。如下圖:
以Word2010為例:
        此時,加密的長度會是6~32位元。那在學生解密時,會花較多時間解密。當密碼長度越長時,解密所花的時間就越長。目前在一節課的時間內,讓學生能夠完成加密與解密。所以,希望pdf 加密的密碼長度能夠限制在四位數以內。因此,需要利用Python程式對pdf加密。
        在資料來源1.,提供一個加密python程式。在Python編譯過程中,會出現錯誤訊息。其中錯誤原因是套件PyPDF2的版本須限制在3.0.0(含)以內。因此,安裝套件PyPDF2 版本為2.9.0。整個過程步驟如下:
1.安裝套件:pip install pypdf2==2.9.0
2.程式碼與需加密的PDF放置位置:
重要:程式碼與需加密的PDF須放置同一位置。
以自己的電腦為例:
或是


3.完整程式碼如下:
需加密的PDF檔名:test.pdf
程式碼檔名:PdfEnCryption01.py
程式碼內容:
from PyPDF2 import PdfFileWriter, PdfFileReader
path = 'test.pdf' # 這裡填寫目標 PDF 所在的路徑

pdf_reader = PdfFileReader('test.pdf')
pdf_writer = PdfFileWriter()

for page in range(pdf_reader.getNumPages()):
    pdf_writer.addPage(pdf_reader.getPage(page))
pdf_writer.encrypt('a123') # 設置密碼為 a123
with open('test.pdf', 'wb') as out:
    pdf_writer.write(out)


資料來源:


2023年5月10日 星期三

關於國中資訊科技-加密的補充教材-python 凱薩密碼實作

        目前連結著課本6-2-2 第二節 加密。該章節介紹兩種加密方法,分別是凱薩密碼與維吉尼亞密碼。 那希望學生能體會凱薩密碼實作的效果。因此,在此引進網路所蒐尋到的實作資料。
        首先是引進資料來源1,該程式碼如下:
#凱撒密碼加密
P = input()
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
CBA = "DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc"
u = len(P)
for i in range(u):
    s = P[i]
    if s in ABC:
        n=ABC.index(s)
        print(CBA[n],end='')
    else:
        print(s,end='')


#凱撒密碼解密
P = input()
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
CBA = "DEFGHIJKLMNOPQRSTUVWXYZABCdefghijklmnopqrstuvwxyzabc"
u = len(P)
for i in range(u):
    s = P[i]
    if s in CBA:
        n=CBA.index(s)
        print(ABC[n],end='')
    else:
        print(s,end='')


        資料來源1程式碼可以引導學生認識凱薩密碼的金鑰為何?

        改善程式:上述程式,並沒有金鑰(位移量)概念。因此,更改為
# 加密
str = input("請輸入明文:")
key = int(input("請輸入金鑰:"))

for i in range(len(str)):
    if ord(str[i]) >= ord('a') and ord(str[i]) <= ord('z'):
        print(chr((ord(str[i])+key-ord('a'))%26+ord('a')),end='')
    elif ord(str[i]) >= ord('A') and ord(str[i]) <= ord('Z'):
        print(chr((ord(str[i])+key-ord('A'))%26+ord('A')),end='')
    else:
        print(str[i],end='')

# 解密
str = input("請輸入明文:")
key = int(input("請輸入金鑰:"))

for i in range(len(str)):
    if ord(str[i]) >= ord('a') and ord(str[i]) <= ord('z'):
        print(chr((ord(str[i])-key-ord('a'))%26+ord('a')),end='')
    elif ord(str[i]) >= ord('A') and ord(str[i]) <= ord('Z'):
        print(chr((ord(str[i])-key-ord('A'))%26+ord('A')),end='')
    else:
        print(str[i],end='')


資料來源:
4.
.

ZeroJudge python解答:a271. 彩色蘿蔔

  a271. 彩色蘿蔔 我的解法: 這題的重點只有兩個: 每天早上先扣中毒效果,再吃蘿蔔 中毒可累加,而且吃到黑蘿蔔當天不扣毒,從隔天開始扣 t = int ( input ()) for i in range ( t ):     x , y , z ,...