iT邦幫忙

0

python 基本語法

不明 2021-06-22 20:13:401061 瀏覽
  • 分享至 

  • xImage

某一班級分為 A、B 及 C 班,每班學生 60 人,一年級學生 共 180 人。今欲依照學生的座號進行編班,若學生座號為 1 號則編入 A 班、2 號 則編入 B 班、3 號則編入 C 班,4 則編入 A 班,餘此類推。
(1) 請利用 input 函式,提醒輸入的座號,並利用所輸入座號判別學生的班別。
(2) 請利用自建函式,依照所輸入的座號,判別學生的班別。
(3) 請利用迴圈,將 180 位學生的座號編排出來,進而利用座號予以分班。
(4) 假設要將座號尾數 5 及 5 的倍數的學生(如 5、15、20…等),另編成一班─D 班,則 A、B 及 C 班剩下的學生人數為何?
(5)導師想由學生的座號中隨機找學生當班長,請試著用 Python 語法將三班班長的座號找出。

請問有沒有好心人士能幫小女解決問題

dragonH iT邦超人 5 級 ‧ 2021-06-22 20:38:58 檢舉
>請問有沒有好心人士能幫小女解決問題

家長真是辛苦 還要幫女兒要作業
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

3
haward79
iT邦研究生 2 級 ‧ 2021-06-22 20:59:10

還是老話一句:作業要自己寫才會進步
(1) (2) (3) (5) 實做如下
研究一下再自行實做 (4) 吧!

from random import randint

def queryClass(studentId: int = None) -> str:

    if studentId == None:
        studentId = int(input('Please input studnet id : '))

    classNo = studentId % 3

    if classNo == 0:
        return 'C'
    elif classNo == 1:
        return 'A'
    else:
        return 'B'

# Demo : read student id from keyboard.
print('Student is in Class {}\n'.format(queryClass()))

# Demo : for 180 students.
classSet = {'A': [], 'B': [], 'C': []}

for i in range(1, 181):
    classReturned = queryClass(i)
    classSet[classReturned].append(i)
    print('Student id {} is in Class {} .'.format(i, classReturned))

print()

# Choose leader.
classA_leader = classSet['A'][randint(0, len(classSet['A']) - 1)]
classB_leader = classSet['B'][randint(0, len(classSet['B']) - 1)]
classC_leader = classSet['C'][randint(0, len(classSet['C']) - 1)]

print('Leader of Class A is No.{}'.format(classA_leader))
print('Leader of Class B is No.{}'.format(classB_leader))
print('Leader of Class C is No.{}'.format(classC_leader))
0
lutrainee
iT邦新手 5 級 ‧ 2021-10-27 10:49:55

import random

ClassA = []
ClassB = []
ClassC = []

def allID(alist): # 題目(2)利用自建函式,輸入座號判別學生班別

# 題目(3)利用迴圈分班,我用 for 迴圈分班
for i in alist:
    i = int(i)
    if i % 3 == 1:
        ClassA.append(i)

    elif i % 3 == 2:
        ClassB.append(i)

    elif i % 3 == 0:
        ClassC.append(i)
        
print("題目(3)利用迴圈分班,我用 for 迴圈分班")

print("分在ClassA的學生: {}".format(ClassA))
print("分在ClassB的學生: {}".format(ClassB))
print("分在ClassC的學生: {}".format(ClassC))
print()

# 題目(4)另編一班D班後,A,B,C 班剩下的學生人數
print("題目(4)另編一班D班後,A,B,C 班剩下的學生人數")

for x in ClassA:
    if x % 5 == 0:
        ClassA.remove(x)
        
print("分在ClassA班剩下的學生人數 {} 位.".format(len(ClassA)))

for y in ClassB:
    if y % 5 == 0:
        ClassB.remove(y)
        
print("分在ClassB班剩下的學生人數 {} 位.".format(len(ClassB)))

for z in ClassC:
    if z % 5 == 0:
        ClassC.remove(z)

print("分在ClassC班剩下的學生人數 {} 位.".format(len(ClassC)))
print()

# 題目(5)A,B,C 班剩下學生中,隨機找班長
print("題目(5)A,B,C 班剩下學生中,隨機找班長")

ClassA_Leader = random.choice(ClassA)
print("ClassA的班長座號是 {} 號.".format(ClassA_Leader))

ClassB_Leader = random.choice(ClassB)
print("ClassB的班長座號是 {} 號.".format(ClassB_Leader))

ClassC_Leader = random.choice(ClassC)
print("ClassC的班長座號是 {} 號.".format(ClassC_Leader))

題目(1)利用input函式,輸入學生座號1~180.(不要重複,不要遺漏,並且用逗點隔開)

學生座號 = input("請輸入學生座號1~180,不要重複,不要遺漏,並且用逗點隔開:").split(",")

allID(學生座號) # 呼叫函式

我要發表回答

立即登入回答