1.已知點的坐標(x, y),判斷其所在的象限。 x = int(input("請輸入x的坐標:")) y = int(input("請輸入y的坐標:")) if x > 0 and y > 0 : print("第一象限") elif x < 0 <= y : print("第二象限") elif ...
1.已知點的坐標(x, y),判斷其所在的象限。
x = int(input("請輸入x的坐標:")) y = int(input("請輸入y的坐標:")) if x > 0 and y > 0 : print("第一象限") elif x < 0 <= y : print("第二象限") elif x < 0 and y < 0 : print("第三象限") elif x >= 0 > y : print("第四象限") elif x == 0 and y == 0 : print("原點")
輸出結果:
請輸入x的坐標:3 請輸入y的坐標:6 第一象限 請輸入x的坐標:-6 請輸入y的坐標:5 第二象限 請輸入x的坐標:-9 請輸入y的坐標:-5 第三象限 請輸入x的坐標:1 請輸入y的坐標:-2 第四象限 請輸入x的坐標:0 請輸入y的坐標:0 原點
2、請根據BMI公式(體重除以身高的平方)計算BMI指數,
BMI指數如下:低於18.5:過輕
18.5-25:正常
25-28:過重
28-32:肥胖
高於32:嚴重肥胖
請輸入小明身高1.75和體重80.5kg,用if-elif語句幫小明判斷並列印BMI結果。
weight = float(input("請輸入體重(kg):")) height = float(input("請輸入身高(m):")) BMI = weight / height ** 2 print("BMI:") if 0 < weight < 18.5 : print("過輕") elif 18.5 <= BMI < 25 : print("正常") elif 28 <= BMI < 32 : print("肥胖") else: print("嚴重肥胖")
輸出結果:
請輸入體重(kg):66 請輸入身高(m):190 BMI: 嚴重肥胖
3、輸入一個數字,按照如下條件處理:如果該數字各位數之和為奇數,則將該數各位數逆序輸出(如輸入122,則輸出為221);如果該數字各位數之和為偶數,則直接輸出該數字(如輸入123,則輸出為321)。
a = int(input("請輸入一個三位數:")) b = int(a % 10) c = int(a // 10) % 10 d = int(a // 100) #print("{}={}+{}*10+{}*100".format(a, b, c, d)) f = (b+c+d) print("各數字之和為",f) if ((b + c + d) % 2 == 0) : print("輸出偶數:", a) else : a = str(a) print("輸出奇數", a[: :-1])
輸出結果:
請輸入一個三位數:122
各數字之和為 5
輸出奇數 221
請輸入一個三位數:123
各數字之和為 6
輸出偶數: 123
方法二:
a = int(input("請輸入一個數:")) # 百位 baiw = int(a/100) # 十位 shiw = int(a/10)%10 # 個位 gew = a%10 # 求和 he = baiw + shiw + gew if he %2 == 0: # 偶數 print("偶數,直接輸出", a) else: print("奇數,逆序輸出",gew,shiw,baiw)
輸出結果:
請輸入一個數:>? 123 偶數,直接輸出 123 請輸入一個數:>? 122 奇數,逆序輸出 2 2 1
4、請分別使用while和for語句輸出1至100的奇數和。
# while語句 i=1 sum = 0 while i<=100: if i%2 !=0: sum=sum +i i+=1 print("1-100的奇數累積和為:%d"%sum)
輸出結果:
1-100的奇數累積和為:2500
#for語句 sum=0 for n in range(1,101): if (n%2==1): sum=sum +n print ("1-100的奇數和=",sum)
輸出結果:
1-100的奇數和= 2500
5、編寫程式輸出1到100中同時被3和5整除的數。
for a in range(1,101): if a%3==0 and a%5==0: print('被3和5整除',a)
輸出結果:
被3和5整除 15 被3和5整除 30 被3和5整除 45 被3和5整除 60 被3和5整除 75 被3和5整除 90
6、有3、5、7、8、9共五個個數字,能組成多少個互不相同且無重覆數字的三位數,並輸出這些數字。
from random import random import list1 as list1 import lst as lst number = [3, 5, 7, 8, 9] for x in range(0, 5): for y in range(0, 5): for z in range(0, 5): if not (x == y or y == z or x == z): print('{} {} {}'.format(number[x], number[y], number[z], )) f = 5 * 4 * 3 print("能組成互不相同且無重覆數字的三位數:", f)
輸出結果:
3 5 7
3 5 8
3 5 9
3 7 5
3 7 8
3 7 9
3 8 5
3 8 7
3 8 9
3 9 5
3 9 7
3 9 8
5 3 7
5 3 8
5 3 9
5 7 3
5 7 8
5 7 9
5 8 3
5 8 7
5 8 9
5 9 3
5 9 7
5 9 8
7 3 5
7 3 8
7 3 9
7 5 3
7 5 8
7 5 9
7 8 3
7 8 5
7 8 9
7 9 3
7 9 5
7 9 8
8 3 5
8 3 7
8 3 9
8 5 3
8 5 7
8 5 9
8 7 3
8 7 5
8 7 9
8 9 3
8 9 5
8 9 7
9 3 5
9 3 7
9 3 8
9 5 3
9 5 7
9 5 8
9 7 3
9 7 5
9 7 8
9 8 3
9 8 5
9 8 7
能組成互不相同且無重覆數字的三位數: 60
方法二:
import random lst = [5, 6, 7, 8, 9] st = set() # 概率 for i in range(1000): # 用列表中的數字組成隨機數的樣本 lst1 = random.sample(lst, 3) # 排除重覆的數字 lst1 = [str(a) for a in lst1] lst2 = "".join(lst1) st.add(lst2) print("共有 {0} 個數字,分別為:{1}".format(len(st), st))
輸出結果:
共有 60 個數字,分別為:{'867', '689', '569', '875', '785', '678', '789', '796', '856', '695', '687', '659', '756', '578', '587', '879', '798', '795', '568', '567', '586', '597', '675', '589', '869', '698', '896', '859', '786', '579', '697', '768', '965', '769', '598', '968', '876', '976', '985', '978', '765', '685', '865', '956', '957', '897', '576', '987', '657', '975', '759', '895', '986', '679', '596', '758', '958', '857', '658', '967'}
7、用for迴圈實現用戶登錄
要求如下:
提示輸入用戶名和密碼。
判斷用戶名和密碼是否正確(name=admin,passwd=123456)。
登錄僅有三次機會,超過3次會報錯。
for i in range(3): name = input('請輸入用戶名:') passwd = input('請輸入密碼:') if name == 'admin' and passwd == '123456': print('密碼正確!') break else: print('密碼錯誤') print('你還有 %d 次機會' % (2 - i)) else: print('請退出重新登錄!')
方法二: for i in range(3): name = input("請輸入用戶名:") passwd = input("請輸入密碼:") if name == "admin" and passwd =="123456": print("登錄成功") break else: print("登錄次數過多,登錄失敗")
輸出結果:
請輸入用戶名:admin 請輸入密碼:123456 密碼正確!
請輸入用戶名:admin
請輸入密碼:2344t
密碼錯誤
你還有 2 次機會
請輸入用戶名:
請輸入用戶名:admin 請輸入密碼:2345 請輸入用戶名:admin 請輸入密碼:123653 請輸入用戶名:admin 請輸入密碼:23344 登錄次數過多,登錄失敗 請輸入一個數字
8、使用for迴圈計算7的階乘。
sum = 7 for n in range(1, 7): sum = sum * n print("7的階乘=", sum)
輸出結果:
7的階乘= 5040
# 使用for迴圈計算7的階乘 a = int(input("請輸入一個數字")) n = 1 if a< 0: print("負數沒有階乘") elif a == 0: print("0的階乘為1") else: for i in range(1, a + 1): n = n * i print("結果=", n) # 遞歸函數實現階乘 def fact(n): if n==0: return 1 else: return n * fact(n-1) print("結果=", fact(7)) # 使用數學函數實現階乘 import math print("結果=", math.factorial(7)) # 使用lambda實現階乘 from functools import reduce a = reduce(lambda x, y:x*y, range(1, 8)) print("結果=", a)
9、由星號組成的等邊三角形。
n = eval(input("請輸入一個整數:")) for i in range(1, n + 1, 2): print("{0:^{1}}".format('*' * i, n))
請輸入一個整數:9 * *** ***** ******* *********