測驗3
選擇題
1.pow(x, 0.5)能夠計算x的平方根,計算負數的平方根將產生:複數
2.以下關於字符串.strip()方法功能說明正確的是:去掉字符串兩側指定字符
3.字符串是一個連續的字符序列,哪個選項可以實現打印字符信息的換行?使用\n
4.val=pow(2,1000),請用一行代碼返回val結果的長度值。len(str(val))
5.下面關於time庫引用不正確的是?from * import time
6.哪個選項不是Python語言的整數類型?0E99
7.關於整數類型的4種進製表示,哪個選項的描述是正確的?二進制、八進制、十進制、十六進制
8.哪個選項是Python語言%運算符的含義?x與y之商的餘數
9.哪個選項是下面代碼的執行結果?P thon語言程序設計 程
10.哪個選項是下面代碼的執行結果?PYTHON
平方根格式化
描述
獲得用戶輸入的一個整數a,計算a的平方根,保留小數點後3位,並打印輸出。
輸出結果採用寬度30個字符、右對齊輸出、多餘字符采用加號(+)填充。
如果結果超過30個字符,則以結果寬度爲準。
num = int(input())
result = pow(num, 0.5)
print("{:+>30.3f}".format(result))
字符串分段組合
描述
獲得輸入的一個字符串s,以字符減號(-)分割s,將其中首尾兩段用加號(+)組合後輸出。
s = input()
ls = s.split('-')
print(ls[0] + "+" + ls[-1])
練習3
實例3:天天向上的力量
工作日模式要努力到什麼水平,才能與每天努力1%一樣?
-A君: 一年365天,每天進步1%,不停歇
-B君: 一年365天,每週工作5天休息2天,休息日下降1% ,要多努力呢?
每週工作5天休息2天,計算工作日的努力參數是多少才能與每天努力1%一樣。
要求如下:
(1) 一年365天,以第0天的能力值爲基數,記爲1.0;
(2) 當好好學習時,能力值相比前一天提高1%;當沒有學習時,由於遺忘等原因能力值相比前一天下降1%;
def dayUP(df):
d = 1
for i in range(365):
if i % 7 in [6,0]:
d = d*(1 - 0.01)
else:
d = d*(1 + df)
return d
day_factor = 0.01
while dayUP(day_factor) < 37.78:
day_factor += 0.001
print("工作日的努力參數是: {:.3f}".format(day_factor))
實例4:文本進度條
要求如下:
(1) 採用sleep()模擬一個持續的進度,獲得文本進度條的變化時間;
(2) 通過print()函數實現單行動態刷新,在print()函數中更換參數end的默認值爲’’,每次使用print()函數輸出時不能換行;
(3) 要能回退:打印後光標到之前的位置 \r。
import time
scale = 50
print("執行開始".center(scale//2,'-'))
start = time.perf_counter()
for i in range(scale+1):
a = '*' * i
b = '.' * (scale - i)
c = (i/scale)*100
dur = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
time.sleep(0.1)
print("\n"+"執行結束".center(scale//2,'-'))
三次方格式化
描述
獲得用戶輸入的一個數字,可能是整數或浮點數,a,計算a的三次方值,並打印輸出。
輸出結果採用寬度20個字符、居中輸出、多餘字符采用減號(-)填充。
如果結果超過20個字符,則以結果寬度爲準。
a = eval(input())
print("{:-^20}".format(pow(a, 3)))
星號三角形
描述
讀入一個整數N,N是奇數,輸出由星號字符組成的等邊三角形,要求:
第1行1個星號,第2行3個星號,第3行5個星號,依次類推,最後一行共N的星號。
n = eval(input())
for i in range(1,n+1,2):
print("{0:^{1}}".format('*'*i, n))
愷撒密碼
描述
愷撒密碼是古羅馬愷撒大帝用來對軍事情報進行加解密的算法,它採用了替換方法對信息中的每一個英文字符循環替換爲字母表序列中該字符後面的第三個字符,即,字母表的對應關係如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
對於原文字符P,其密文字符C滿足如下條件:C=(P+3) mod 26
上述是凱撒密碼的加密方法,解密方法反之,即:P=(C-3) mod 26
假設用戶可能使用的輸入包含大小寫字母azAZ、空格和特殊符號,請編寫一個程序,對輸入字符串進行愷撒密碼加密,直接輸出結果,其中空格不用進行加密處理。使用input()獲得輸入。
s = input()
t = ""
for c in s:
if 'a' <= c <= 'z':
t += chr( ord('a') + ((ord(c)-ord('a')) + 3 )%26 )
elif 'A' <= c <= 'Z':
t += chr( ord('A') + ((ord(c)-ord('A')) + 3 )%26 )
else:
t += c
print(t)