2023年6月19日 星期一

2023-暑假,每日程式上傳區

 每日找2至5個小程式,研究清楚後上傳至這裡,分享給一起學習的夥伴!

每個程式2行以上


成果預計

暑假結束,9月開學時

累積2*60~5*60個程式基礎,功力大增!

有空看看同學上傳的,一起交流,那就是2*60*10~5*60*10了!

大家加油!


2023年6月7日 星期三

用python 程式去python程式註解

 p = '''

a = a.replace('.',' ').replace(',',' ')

a = a.split()

a = [i for i in a if i>'']

# print(a)

# print(len(a))

sa = set(a)

# print(sa)

# print(len(sa))

b = []

for i in sa:

    t = [a.count(i),i.strip().lower()]

    b.append(t)

b.sort()

b.reverse()

b0 = [i[0] for i in b]

# print(*b)

# for i in b:

    # print(i[0],':',i[1])

# for i in b[:30]:

    # print(i)

c = [i for  i in b if i[0]>1 and i[1]>'9']

c0 = [i[0] for i in c]

# for i in c:

    # print(i)

# print(len(c))


# print(sum(b0),sum(c0))

for i in c:

   outline = f'{i[1]:<15} :{i[0]:>10}'

   print(outline)

p = int(sum(c0)/sum(b0) * 10000)/100

print(p)

print(len(c0))

'''

print(p)

p1 = p.splitlines()

# p1 = [i for i in p.split('\n')]

print(len(p1))

for i in p1:

    if len(i) >0:

        t = i

        t = t.strip()

        if t[0]!='#':

            print(i)


# 執行結果

a = a.replace('.',' ').replace(',',' ')

a = a.split()

a = [i for i in a if i>'']

sa = set(a)

b = []

for i in sa:

    t = [a.count(i),i.strip().lower()]

    b.append(t)

b.sort()

b.reverse()

b0 = [i[0] for i in b]

c = [i for  i in b if i[0]>1 and i[1]>'9']

c0 = [i[0] for i in c]

for i in c:

   outline = f'{i[1]:<15} :{i[0]:>10}'

   print(outline)

p = int(sum(c0)/sum(b0) * 10000)/100

print(p)

print(len(c0))

2023年6月6日 星期二

自己寫 split()

 using System;

public class Program

{

public static void Main()

{

string a = "10,20";

string[] b = new string[2];

//b = a.Split(',');

string tem = "";

foreach(char ch in a)

if (ch==',')

{

b[0]=tem;

tem = "";

}

else

tem=tem+ch;

b[1]=tem;

Console.WriteLine(b[0]);

Console.WriteLine(b[1]);

string[] c = new string[2];

c = mySplit(a);

Console.WriteLine(c[0]);

Console.WriteLine(c[1]);

}

public static string[] mySplit(string a)

{

string[] b = new string[2];

string tem = "";

foreach(char ch in a)

if (ch==',')

{

b[0]=tem;

tem = "";

}

else

tem=tem+ch;

b[1]=tem;

return b;

}

}

2023年5月31日 星期三

補考試卷產生器

 #第一版

#d = 'C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山'

#ans = d[0]

#question = d[1:7]

#ansA = d[7:13]

#ansB = d[13:20]

#ansC = d[20:25]

#ansD = d[25:]

#

#q1 = ans + question + ansA + ansB + ansC + ansD

#print(q1)

#ans = 'A'

#q2 = ans + question + ansC + ansB + ansA + ansD

#print(q2)

#執行結果

#C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山

#A台灣最高山?(C)玉山(B)南湖大山(A)阿里山(D)八卦山


##第二版

#d = 'C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山'

#ans = d[0]

#question,ansA,ansB,ansC,ansD = d[1:].split('(')

#ansA = ansA[2:]

#ansB = ansB[2:]

#ansC = ansC[2:]

#ansD = ansD[2:]

#

#q1 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansC +'(D)'+ ansD

#print(q1)

#ans = 'A'

#q2 = ans + question +'(A)'+ ansC +'(B)'+ ansB +'(C)'+ ansA +'(D)'+ ansD

#print(q2)


##第三版

##d = 'C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山'

##d = 'B台灣最高山?(A)阿里山(B)玉山(C)南湖大山(D)八卦山'

##d = 'A台灣最高山?(A)玉山(B)阿里山(C)南湖大山(D)八卦山'

#d = 'D台灣最高山?(A)八卦山(B)阿里山(C)南湖大山(D)玉山'

#ans = d[0]

#question,ansA,ansB,ansC,ansD = d[1:].split('(')

#ansA = ansA[2:]

#ansB = ansB[2:]

#ansC = ansC[2:]

#ansD = ansD[2:]

#

#q1 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansC +'(D)'+ ansD

#print(q1)

#if ans=='D':

#    ans = 'C'

#    q2 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansD +'(D)'+ ansC

#elif ans=='C':

#    ans = 'A'

#    q2 = ans + question +'(A)'+ ansC +'(B)'+ ansB +'(C)'+ ansA +'(D)'+ ansD

#elif ans=='B':

#    ans = 'D'

#    q2 = ans + question +'(A)'+ ansA +'(B)'+ ansD +'(C)'+ ansC +'(D)'+ ansB

#elif ans=='A':

#    ans = 'B'

#    q2 = ans + question +'(A)'+ ansB +'(B)'+ ansA +'(C)'+ ansC +'(D)'+ ansD

#print(q2)


#第四版

# dd = []

# d = 'C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山'

# dd.append(d)

# d = 'B台灣最高山?(A)阿里山(B)玉山(C)南湖大山(D)八卦山'

# dd.append(d)

# d = 'A台灣最高山?(A)玉山(B)阿里山(C)南湖大山(D)八卦山'

# dd.append(d)

# d = 'D台灣最高山?(A)八卦山(B)阿里山(C)南湖大山(D)玉山'

# dd.append(d)


# for d in dd:

#     ans = d[0]

#     question,ansA,ansB,ansC,ansD = d[1:].split('(')

#     ansA = ansA[2:]

#     ansB = ansB[2:]

#     ansC = ansC[2:]

#     ansD = ansD[2:]

    

#     q1 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansC +'(D)'+ ansD

#     print(q1)

#     if ans=='D':

#         ans = 'C'

#         q2 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansD +'(D)'+ ansC

#     elif ans=='C':

#         ans = 'A'

#         q2 = ans + question +'(A)'+ ansC +'(B)'+ ansB +'(C)'+ ansA +'(D)'+ ansD

#     elif ans=='B':

#         ans = 'D'

#         q2 = ans + question +'(A)'+ ansA +'(B)'+ ansD +'(C)'+ ansC +'(D)'+ ansB

#     elif ans=='A':

#         ans = 'B'

#         q2 = ans + question +'(A)'+ ansB +'(B)'+ ansA +'(C)'+ ansC +'(D)'+ ansD

#     print(q2)

# 執行結果

# A台灣最高山?(A)玉山(B)南湖大山(C)阿里山(D)八卦山

# B台灣最高山?(A)阿里山(B)玉山(C)南湖大山(D)八卦山

# D台灣最高山?(A)阿里山(B)八卦山(C)南湖大山(D)玉山

# A台灣最高山?(A)玉山(B)阿里山(C)南湖大山(D)八卦山

# B台灣最高山?(A)阿里山(B)玉山(C)南湖大山(D)八卦山

# D台灣最高山?(A)八卦山(B)阿里山(C)南湖大山(D)玉山

# C台灣最高山?(A)八卦山(B)阿里山(C)玉山(D)南湖大山


# #第五版

# ddd = '''

# C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山

# B台灣最高山?(A)阿里山(B)玉山(C)南湖大山(D)八卦山

# A台灣最高山?(A)玉山(B)阿里山(C)南湖大山(D)八卦山

# D台灣最高山?(A)八卦山(B)阿里山(C)南湖大山(D)玉山

# '''

# dd = ddd.strip().splitlines()


# for d in dd:

#     ans = d[0]

#     question,ansA,ansB,ansC,ansD = d[1:].split('(')

#     ansA = ansA[2:]

#     ansB = ansB[2:]

#     ansC = ansC[2:]

#     ansD = ansD[2:]

    

#     q1 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansC +'(D)'+ ansD

#     # print(q1)

#     if ans=='D':

#         ans = 'C'

#         q2 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansD +'(D)'+ ansC

#     elif ans=='C':

#         ans = 'A'

#         q2 = ans + question +'(A)'+ ansC +'(B)'+ ansB +'(C)'+ ansA +'(D)'+ ansD

#     elif ans=='B':

#         ans = 'D'

#         q2 = ans + question +'(A)'+ ansA +'(B)'+ ansD +'(C)'+ ansC +'(D)'+ ansB

#     elif ans=='A':

#         ans = 'B'

#         q2 = ans + question +'(A)'+ ansB +'(B)'+ ansA +'(C)'+ ansC +'(D)'+ ansD

#     print(q2)

# # 執行結果


# #第六版

# # ddd = '''

# # C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山

# # B台灣最高山?(A)阿里山(B)玉山(C)南湖大山(D)八卦山

# # A台灣最高山?(A)玉山(B)阿里山(C)南湖大山(D)八卦山

# # D台灣最高山?(A)八卦山(B)阿里山(C)南湖大山(D)玉山

# # '''

# f1 = open("q10.data",encoding='utf-8')

# dd = f1.readlines()

# dd = [i[:-1] for i in dd]

# # print(dd)

# # dd = ddd.strip().splitlines()


# for d in dd:

#     ans = d[0]

#     question,ansA,ansB,ansC,ansD = d[1:].split('(')

#     ansA = ansA[2:]

#     ansB = ansB[2:]

#     ansC = ansC[2:]

#     ansD = ansD[2:]

    

#     q1 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansC +'(D)'+ ansD

#     # print(q1)

#     if ans=='D':

#         ans = 'C'

#         q2 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansD +'(D)'+ ansC

#     elif ans=='C':

#         ans = 'A'

#         q2 = ans + question +'(A)'+ ansC +'(B)'+ ansB +'(C)'+ ansA +'(D)'+ ansD

#     elif ans=='B':

#         ans = 'D'

#         q2 = ans + question +'(A)'+ ansA +'(B)'+ ansD +'(C)'+ ansC +'(D)'+ ansB

#     elif ans=='A':

#         ans = 'B'

#         q2 = ans + question +'(A)'+ ansB +'(B)'+ ansA +'(C)'+ ansC +'(D)'+ ansD

#     print(q2)

# # 執行結果

# A台灣最高山?(A)玉山(B)南湖大山(C)阿里山(D)八卦山

# D台灣最高山?(A)阿里山(B)八卦山(C)南湖大山(D)玉山

# B台灣最高山?(A)阿里山(B)玉山(C)南湖大山(D)八卦山

# C台灣最高山?(A)八卦山(B)阿里山(C)玉(D)南湖大山


# #第七版

# f1 = open("q10.data",encoding='utf-8')

# dd = f1.readlines()

# dd = [i[:-1]  if i[-1]=='\n' else i for i in dd]


# for d in dd:

#     # print(d)

#     ans = d[0]

#     question,ansA,ansB,ansC,ansD = d[1:].split('(')

#     ansA = ansA[2:]

#     ansB = ansB[2:]

#     ansC = ansC[2:]

#     ansD = ansD[2:]

    

#     q1 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansC +'(D)'+ ansD

#     # print(q1)

#     if ans=='D':

#         ans = 'C'

#         q2 = ans + question +'(A)'+ ansA +'(B)'+ ansB +'(C)'+ ansD +'(D)'+ ansC

#     elif ans=='C':

#         ans = 'A'

#         q2 = ans + question +'(A)'+ ansC +'(B)'+ ansB +'(C)'+ ansA +'(D)'+ ansD

#     elif ans=='B':

#         ans = 'D'

#         q2 = ans + question +'(A)'+ ansA +'(B)'+ ansD +'(C)'+ ansC +'(D)'+ ansB

#     elif ans=='A':

#         ans = 'B'

#         q2 = ans + question +'(A)'+ ansB +'(B)'+ ansA +'(C)'+ ansC +'(D)'+ ansD

#     print(q2)

# # 執行結果

# A台灣最高山?(A)玉山(B)南湖大山(C)阿里山(D)八卦山

# D台灣最高山?(A)阿里山(B)八卦山(C)南湖大山(D)玉山

# B台灣最高山?(A)阿里山(B)玉山(C)南湖大山(D)八卦山

# C台灣最高山?(A)八卦山(B)阿里山(C)玉山(D)南湖大山


# #第八版

# # q10.data

# # C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山

# # A哪一個山在嘉義?(A)阿里山(B)玉山(C)南湖大山(D)八卦山

# # D哪一個山在彰化?(A)玉山(B)阿里山(C)南湖大山(D)八卦山

# # C哪一個山在宜蘭?(A)八卦山(B)阿里山(C)南湖大山(D)玉山

# f1 = open("q10.data",encoding='utf-8')

# dd = f1.readlines()

# dd = [i[:-1]  if i[-1]=='\n' else i for i in dd]


# for d in dd:

#     ans = d[0]

#     dlist = d[1:].split('(')

#     question = dlist[0]

#     ansList = dlist[1:]

#     ansList = [i[2:] for i in ansList ]

#     ansText = ansList['ABCD'.index(ans)]

#     ansList.sort()

#     newAns = 'ABCD'[ansList.index(ansText)]

#     q2 = newAns + question +'(A)'+ ansList[0] +'(B)'+ ansList[1] +'(C)'+ ansList[2] +'(D)'+ ansList[3]

#     print(q2)

# # 執行結果

# # C台灣最高山?(A)八卦山(B)南湖大山(C)玉山(D)阿里山

# # D哪一個山在嘉義?(A)八卦山(B)南湖大山(C)玉山(D)阿里山

# # A哪一個山在彰化?(A)八卦山(B)南湖大山(C)玉山(D)阿里山

# # B哪一個山在宜蘭?(A)八卦山(B)南湖大山(C)玉山(D)阿里山


#第九版

# q10.data

# C台灣最高山?(A)阿里山(B)南湖大山(C)玉山(D)八卦山

# A哪一個山在嘉義?(A)阿里山(B)玉山(C)南湖大山(D)八卦山

# D哪一個山在彰化?(A)玉山(B)阿里山(C)南湖大山(D)八卦山

# C哪一個山在宜蘭?(A)八卦山(B)阿里山(C)南湖大山(D)玉山

f1 = open("q10.data",encoding="utf-8")

f2 = open("q10.out","w",encoding="utf-8")

dd = f1.readlines()

dd = [i[:-1]  if i[-1]=='\n' else i for i in dd]


for d in dd:

    ans = d[0]

    dlist = d[1:].split('(')

    question = dlist[0]

    ansList = dlist[1:]

    ansList = [i[2:] for i in ansList ]

    ansText = ansList['ABCD'.index(ans)]

    ansList.sort()

    newAns = 'ABCD'[ansList.index(ansText)]

    q2 = newAns + question +'(A)'+ ansList[0] +'(B)'+ ansList[1] +'(C)'+ ansList[2] +'(D)'+ ansList[3]

    print(q2)

    f2.write(q2+'\n')

# 執行結果 q10.out

# C台灣最高山?(A)八卦山(B)南湖大山(C)玉山(D)阿里山

# D哪一個山在嘉義?(A)八卦山(B)南湖大山(C)玉山(D)阿里山

# A哪一個山在彰化?(A)八卦山(B)南湖大山(C)玉山(D)阿里山

# B哪一個山在宜蘭?(A)八卦山(B)南湖大山(C)玉山(D)阿里山

2023年2月24日 星期五

2023年1月4日 星期三

進位轉換

 def two2ten(a):

# a = '10101'

    b = [int(i) for i in a]

    # print(b)

    c = []

    s = 0

    k =len(a)-1

    for i in b:

        s = s + i*2**k

        k-=1

    return s


def ten2two(n):

# n = 18

    if n==0 :return '0'

    s = ''

    while n>=1:

        s = str(n%2) + s 

        n = n//2

    return s


for i in ['1','10','11','101','10111011']:

    print(f'{i} -> {two2ten(i)}')

for i in range(20):

    print(i,ten2two(i))

2022年12月28日 星期三

Python 初學者的 11 道練習題

 https://buzzorange.com/techorange/2021/03/02/11-projects-for-python-beginner/


參考解答

# n = int(input('請輸入一個數字:(1-1000)'))

# if n%2==0:

#     print("偶數")

# else:

#     print("奇數")

    

# import random

# main = ['王小美','林小明','李大華'] 

# location = ['教室','浴室','公車上','廁所']

# do = ['看書','刷牙','吃東西','睡覺' ]


# a,b,c = random.randint(0,2),random.randint(0,3),random.randint(0,3)

# msg = main[a]+"在"+location[b]+do[c] 

# print(msg)


# 畫面:你心裡在想什麼?

# 輸入:我要成為寫程式的專家

# 輸出:你用了 10 個文字述說內心的想法


# a = input('你心裡在想什麼?')

# n = len(a)

# msg = f'你用了 {n} 個文字述說內心的想法'

# print(msg)


# 畫面:你心裡在想什麼?

# 輸入:我要成為寫程式的專家

# 輸出:你用了 10 個文字述說內心的想法

# a = input('你心裡在想什麼?')

# n = len(a)

# msg = f'你用了 {n} 個文字述說內心的想法'

# print(msg)



# 字母縮寫(What’s my acronym?)

# 使用者輸入一段話,程式抓出單字的第一個字母,並輸出縮寫。


# 例如:


# 輸入:As Soon As Possible

# 輸出:ASAP


# 英文縮寫

# english=input("輸入英文句子:")

# index_list=[]

# suoxie=english[0]

# for i, element in enumerate(english):

#     if element==" ":

#         index_list.append(i)

# for i in index_list:

#     suoxie+=english[i+1]

# print(suoxie.upper())


# english=input("輸入英文句子:")

# english = english.split()

# for i in english:

#     print(i[0].upper(),end='')



# Email 域名判斷器(Email slicer)

# 請用戶輸入 Email 地址,然後判斷它是自定義域名還是熱門域名。


# 例如:


# 輸入:mary.jane@gmail.com

# 輸出:這是註冊在 Google 之下的 Email 地址

# 輸入:peter.pan@myfantasy.com

# 輸出:這是在 MyFantasy 之下自定義域


a = input('輸入 Email 地址?')

a = a.split('@')

# print(a)

b = a[1].split('.')

# print(b[0])

if b[0] in ['gmail','yahoo','cyvs']:

    msg = f'這是註冊在 {b[0]} 之下的 Email 地址'

else:

    msg = f'這是在  {b[0]} 之下自定義域'

print(msg)