1. 程式人生 > >Python基礎---課後作業1

Python基礎---課後作業1

1.設計一個程式,幫助小學生練習10以內的加法

#詳情:
#- 隨機生成加法題目;
#- 學生檢視題目並輸入答案;
#- 判別學生答題是否正確?
#- 退出時, 統計學生答題總數,正確數量及正確率(保留兩位小數點);
程式碼:

import random
count=0
true_number=0
while True:
    num1=random.randint(0,9)
    num2=random.randint(0,9)
    num=num1+num2
    count+=1
    print('{}+{}='.format(num1,num2))
    student_number=input('請輸入答案:')
    if student_number=="exit":
        break
    elif num==int(student_number):
        print('回答正確!')
        true_number+=1
    else:
        print('錯誤')

percent=true_number/count
print('答題總數:%d,正確數量:%d' %(count,true_number))
print('正確率:%.2f%%' %(percent*100))

執行結果:
在這裡插入圖片描述
#2. 小學生算術能力測試系統:
#設計一個程式,用來實現幫助小學生進行百以內的算術練習,它具有以下功能:
#提供10道加、減、乘或除四種基本算術運算的題目;
#練習者根據顯示的題目輸入自己的答案,程式自動判斷輸入的答案是否正確並顯示出相應的資訊。
此程式程式碼有點繁瑣,可以進行合併,讀者可以自己嘗試
程式碼:

import random
op=['+','-','*','/']
for i in range(10):
    if i<=9:
        s=random.choice(op)
        true_number=0
        num1=random.randint(0,99)
        num2=random.randint(0,99)
        if s=='+':
            print('{}+{}='.format(num1,num2))
            true_number=(num1+num2)
            result=int(input('請輸入答案:'))
            if result==true_number:
                print('true')
            else:
                print('wrong.正確答案為{}'.format(true_number))
        elif s=='-':
            print('{}-{}='.format(num1,num2))
            true_number=(num1-num2)
            result=int(input('請輸入答案:'))
            if result==true_number:
                print('true')
            else:
                print('wrong.正確答案為{}'.format(true_number))
        elif s=='*':
            print('{}*{}='.format(num1,num2))
            true_number=(num1*num2)
            result=int(input('請輸入答案:'))
            if result==true_number:
                print('true')
            else:
                print('wrong.正確答案為{}'.format(true_number))

        else:
            print('{}/{}='.format(num1,num2))
            true_number=(num1/num2)
            result=float(input('請輸入答案:'))
            if result==true_number:
                print('true')
            else:
                print('wrong.正確答案為{}'.format(true_number))
    else:
    	   print('出題結束!')

出十道題後,程式執行結束
在這裡插入圖片描述

3.演算法之指定範圍內判斷
#1). 若一個正整數n的所有小於n的因子之和等於n, 則稱n為完全數, 如6=1+2+3是完全數。判斷正整數n是否為完全數。
#2). 輸入一個正整數,判斷其是否為一個素數

判斷完全數程式碼:

num=int(input('請輸入一個整數:'))
sum=0
for i in range(1,num):
    if num%i==0:
        sum+=i
        print('%d的因子有%d' %(num,i))
    else:
        continue
if sum==num:
    print('%d是完全數' %num)
else:
    print('%d不是完全數' %num)

在這裡插入圖片描述

判斷素數程式碼:

  num=int(input('請輸入一個整數:'))
    if num>1:
        for i in range(2,num):
            if(num%i)==0:
                print('%d不是質數' %num)
                break
            else:
                print('%d是質數' %num)
                break
    else:
        print('%d不是質數' %num)

在這裡插入圖片描述

題目描述:
給定一個句子(只包含字母和空格), 將句子中的單詞位置反轉,單詞用空格分割, 單詞之間只有一個空格,前>後沒有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”

輸入描述:
輸入資料有多組,每組佔一行,包含一個句子(句子長度小於1000個字元)

輸出描述:
對於每個測試示例,要求輸出句子中單詞反轉後形成的句子

示例1:

  • 輸入
    hello xiao mi
  • 輸出
    mi xiao hello

程式碼:

sentence=str(input('請輸入句子:'))
s=sentence.split(' ')
print(' '.join(s[::-1]))

在這裡插入圖片描述