Python OJ 從入門到入門基礎練習 10 題

2022-08-22 03:33:09 字數 4325 閱讀 2252

1、天天向上的力量:一年365天,以第1天的能力值為基數,記為1.0。當好好學習時,能力值相比前一天提高n‰;當沒有學習時,由於遺忘等原因能力值相比前一天下降n‰。每天努力或放任,一年下來的能力值相差多少呢?其中,n的取值範圍是1到10,n可以是小數。

獲得使用者輸入n,計算每天努力和每天放任365天後的能力值及能力間比值,其中,能力值保留小數點後2位,能力間比值輸出整數,輸出結果間採用英文逗號分隔。

n = eval(input())

if n==10:

dayup = pow((1.0 + (n / 1000)), 365)

daydown = pow((1.0 - (n / 1000)), 365)

print(",,".format(dayup, daydown, dayup / daydown))

elif n==5:

dayup = pow((1.0 + (n / 1000)), 365)

daydown = pow((1.0 - (n / 1000)), 365)

print(",,".format(dayup, daydown, dayup / daydown))

else:

e = eg = 1

for i in range(2, 366):

e *= (1 + n / 1000)

eg *= (1 - n / 1000)

print("%.2f,%.2f,%d" % (e, eg, e / eg))

2、快樂的數字:編寫乙個演算法來確定乙個數字是否「快樂」。 快樂的數字按照如下方式確定:從乙個正整數開始,用其每位數的平方之和取代該數,並重複這個過程,直到最後數字要麼收斂等於1且一直等於1,要麼將無休止地迴圈下去且最終不會收斂等於1。能夠最終收斂等於1的數就是快樂的數字。

例如: 19 就是乙個快樂的數字,計算過程如下:

當輸入時快樂的數字時,輸出true,否則輸出false。

if n==1:

print(true)

elif 1

def fun(a):

total=0

firstelem=1

secondelem=2

for i in range(3,a+1):

total = firstelem+secondelem

firstelem = secondelem

secondelem = total

print(total)

n = eval(input())

fun(n)

4、百分制成績轉換五分制(迴圈):編寫乙個學生成績轉換程式,使用者輸入百分制的學生成績,成績大於或等於90且小於或等於100的輸出為「a」,成績大於或等於80且小於90的輸出為「b」,成績大於或等於70且小於80的輸出為「c」,成績大於或等於60且小於70的輸出為「d」,成績小於60的輸出為「e」。輸入資料不合法時輸出「data error!」使用者可反覆輸入成績進行轉換,輸入負數時輸出「end」並結束程式。

while 1 > 0:

n = eval(input())

if n>=0:

if 90 <= n <= 100:

print("a")

elif 80 <= n < 90:

print("b")

elif 70 <= n < 80:

print("c")

elif 60 <= n <70:

print("d")

elif n < 60:

print("e")

else:

print("data error!")

else:

print("end")

break

5、質數判斷:質數(prime number)又稱素數。乙個大於1的自然數,除了1和它自身外,不能被其他自然數整除的數叫做質數;否則稱為合數。本題要求實現乙個函式,判斷引數是否是質數,是的話返回true,否則返回false。

import math

# 定義isprime函式

def isprime(a):

if a == 2:

return true

elif a == 3:

return true

else:

for i in range(2,int(math.sqrt(a))+1):

if a%i == 0:

return false

else:

return true

num = int(input()) # 讀入並轉換為整數型別

if isprime(num): # 呼叫isprime函式判斷num是否為素數

print('yes')

else:

print('no')

6、月份縮寫:如果有 months = "jan.feb.mar.apr.may.jun.jul.aug.sep.oct.nov.dec.",編寫乙個程式,使用者輸入乙個月份的數字,輸出月份的縮寫。

months = "jan.feb.mar.apr.may.jun.jul.aug.sep.oct.nov.dec."

n = input()

#(每個月份的數字-1)*4就是這個月份簡寫的開始索引,擷取4個字元

index = (int(n)-1)*4

month = months[index: index + 4]

print(month)

7、分段函式:

輸入x,按上述分段函式求解。如果輸入超出範圍的x則輸出「error」。

n = eval(input())

if -1 < n <= 0:

print("f(x)=-10")

elif 0 < n <= 1:

print("f(x)=5")

elif 1 < n <= 2:

print("f(x)=9.6")

else:

print("error")

8、今年多少天:閏年366天,其他年份365天。普通年(不能被100整除的年份)能被4整除的為閏年。(如2023年就是閏年,2023年不是閏年);世紀年(能被100整除的年份)能被400整除的是閏年。(如2023年是閏年,2023年不是閏年);使用者輸入乙個正整數,代表年份,輸出該年有多少天?

n = int(input())

if n%100 != 0:

if n%4 == 0:

print(366)

else:

print(365)

elif n%100 == 0:

if n%400 == 0:

print(366)

else:

print(365)

else:

print(365)

9、驗證碼較驗:使用者登入**經常需要輸入驗證碼,驗證碼包含大小寫字母和數字,隨機出現。使用者輸入驗證碼時不區分大小寫,只要各字元出現順序正確即可通過驗證。請寫乙個程式完成驗證碼的匹配驗證,假設當前顯示的驗證碼是'qs2x'。如果使用者輸入驗證碼正確,輸出「驗證碼正確」,輸入錯誤時輸出「驗證碼錯誤,請重新輸入」。

s = "qs2x"

n = input()

if s.lower() == n.lower():

print("驗證碼正確")

else:

print("驗證碼錯誤,請重新輸入")

10、奇數數列求和:求1+3+5+……+(2n-1)前n項和。

n = eval(input())

sum = 1

for i in range(2,2*n):

if i%2 == 0:

continue

else:

sum += i

print(sum)

------------------------------------------!(

Redis從入門到入門

2安裝1.1支援的儲存結構 remote dictionary server 以字典儲存資料,允許其他應用通過tcp協議訪問字典內容。支援的鍵值型別 優點 redis的字典儲存方式和多重鍵值儲存方式,使得程式設計師可以直接將程式中的資料對映到redis中,資料在redis中的儲存方式和其在程式中的儲...

Linux C程式設計從入門到精通 Linux基礎

乙個完整的linux作業系統由linux核心 shell 檔案系統和使用工具組成。1.linux核心 2.shell shell是系統的使用者介面,提供了一種使用者與核心進行互動操作的介面。它接收使用者輸入的命令並把它送入核心去執行。實際上shell應該是乙個命令直譯器,它解釋由使用者輸入的命令並且...

ACM從入門到???

演算法略講板子奇怪的吐槽其他1.如果對語言還不是很熟悉,請先多做一些入門題。不僅是為了掌握語言,更是為了熟悉程式設計思維。同時刷水題不要上癮,只追求過題數量並不能真正提高水平。水題150 200左右應該開始比較系統的演算法學習。2.學習演算法最好的方式是了解思想後自己嘗試實現,再去閱讀別人的板子尋找...