Python 簡易語法介紹

Lecturer:王譽錚

if...elif...else

for迴圈

while迴圈

random

OUTLINE

if...elif...else

a, b = eval(input())
if a > b :
    print("a獲勝")
elif a < b :
    print("b獲勝")
else:
    print("平手")

輸入兩個數字來比大小

Lab1

試寫出一個可以算出BMI值的程式,並且輸出使用者的健康狀況:
BMI = 體重(kg)除以身高(m)的平方
BMI小於18.5的為過輕
BMI大於18.5且小於24.9的為正常
BMI大於24.9且小於29.9的為過重
BMI大於29.9的為肥胖

 

Input:身高,體重                 Outpt:BMI與健康狀況

    輸入範例:1.5,45

    輸出範例:BMI為20,正常

height, weight = eval(input())
bmi = weight / (height * height)
if bmi <= 18.5:
    print("BMI為",bmi,"過輕")
elif bmi > 18.5 and bmi <= 24.9:
    print("BMI為",bmi,"正常")
elif bmi > 24.9 and bmi <= 29.9:
    print("BMI為",bmi,"過重")
else:
    print("BMI為",bmi,"肥胖")

解答

for迴圈

sum = 0
#i會從1開始,每輪加2,只到數超過100
for i in range(1,101,2): 
    sum = sum + i
print(sum)

將1到100的奇數加起來

Lab2

試寫一個程式,輸入任意正整數N,並輸入1 * 1、2 * 2、...、N * N之結果。

輸出範例:1 * 1 = 1
                    2 * 2 = 4
                    3 * 3 = 9
                      4 * 4 = 16
                      5 * 5 = 25

    輸入範例:5

Input:任意整數

                 Output:對應的乘法表

n = eval(input())
for i in range(1,n+1):
    print(i,"*",i,"=",i*i)

解答

while迴圈

任意數字相加,每加完一次即輸出結果,當使用者輸入-1時結束

sum = 0
while True:#會一直執行內含的程式碼
    num = eval(input())
    if num != -1:
        sum = sum + num
        print(sum)
    else:
        break

Lab3

請寫出一程式輸入一整數n,並輸出1~n(包含n)的所有質數:
質數定義:只被自己和一整除。

Input:任意整數

                 Output:範圍內的質數

輸出範例:2 3 5 7

    輸入範例:10

n = eval(input())
i = 2


while i < n:
    a = 0
    for j in range(2,i):
        if i % j ==0:
            a = 1
            break       
    if a == 0:
        print(i)
    i = i +1

解答

for與while的異同

for while
循環次數 依照設定條件 依照設定條件
執行條件 像是計數器 像是開關
結束條件 計數器計到最後會自行結束 沒寫的情況下會無限循環

random隨機亂數

猜數字

import random#匯入random模組
 
num = random.randint(1,99)#隨機出答案
player = eval(input())

while player != num:#當猜錯的時候
	if player > num:
		print("太大")
	else:
		print("太小")
	player = eval(input())#重新猜
print("回答正確!!!")

Lab4

試寫出一個跟電腦猜拳的程式,0為石頭,1為布,2為剪刀

Input:0或1或2

                 Output:玩家獲勝/電腦獲勝/平手

import random
player = eval(input())
com = random.randint(0,2)

a = 0 #player獲勝次數
b = 0 #com獲勝次數

if player == 2 and com == 0:#一種輸
	a -= 1
	b += 1
elif player > com: #兩種win
	a += 1
	b -= 1
elif player == 0 and com == 2:#一種win
	a += 1
	b -= 1
elif player == com: #三種平手
	a = 0
	b = 2
else:#兩種輸
	a -= 1
	b += 1
# print(player,"vs",com) 確保pk結果正確
if a == 1:
	print("player win")
elif b == 1:
	print("computer win")
else:
	print("平手")

解答

練習題

Lab5

試寫出一程式,可輸入月份,然後判斷其所屬的季節

(3 ~ 5月為Spring,6 ~ 8月為Summer,9 ~ 11月為Autumn,12 ~ 2月為Winter)。

Input:月份

              Output:季節

輸出範例:Spring

    輸入範例:3

m = eval(input())
if (m <=2 and m > 0) or m== 12:
	print("Winter")
elif m>2 and m<=5:
	print("Spring")
elif m>5 and m<=8:
	print("Summer")
elif m>8 and m<=11:
	print("Autumn")

解答

Lab6

試寫一程式,判斷這三個整數是否能夠成三角形的三個邊長(p.s.三角形兩邊長之和必須大於第三邊),符合就輸出fit,不符合就輸出unfit。

Input:三邊長

              Output:符合或不符合

輸出範例:unfit
              fit

    輸入範例: 1,2,3
                         4,5,6

a,b,c = eval(input())
if a + b >c and b + c > a and a + c > b:
	print("fit")
else:
	print("unfit")

解答

Lab7

試寫一程式,算階乘,輸入一個整數 n,0 < n < 20 ,輸出結果

Input:1~19內的整數

              Output:結果

輸出範例:6

                        720

    輸入範例: 3

                        6

n = eval(input())#要算幾階
ans = 1
for i in range(1,n+1):
	ans = ans * i#從1乘到n
print(ans)

解答

Lab8

num = eval(input()) #輸入數字
ans = 0 

for i in range(2,num): #找出有哪些是質數
	a = 1 #用1代表為質數,0代表非質數
	for j in range(2,i): #沒有被整除的就是質數
		if i % j == 0:
			a = 0

	if a == 1:  #如果a是質數的話,就去比大小,留下較大的值
		if ans < i:
			ans = i
print(ans)

解答

-END-

Python 介紹

By arashi

Python 介紹

  • 145