基本數據類型
文章目錄
從尾到頭
從鍵盤輸入一個小於 500 的三位整數,將這個整數乘 2 得到一個新的數,將這個新的數從尾到頭倒敘輸出。
例如:輸入 123 則輸出 642.
# 從鍵盤輸入一個三位數
a = eval(input())
a=2*a
# 將其乘 2 後倒敘輸出
b = a//100
s = a//10-b*10
g = a-b*100-s*10
a = g*100+s*10+b
print(a)
抹零行爲
現有小區停車收費規則如下,每小時收 1 元,1 小時內免費,不足一小時按 1 小時算。
請編程實現:輸入停車時長,計算並輸出所需要收取的停車費。例如,從鍵盤輸入 1.5,則輸出所需要繳納的停車費 1。
# 請輸入停車時長
a = eval(input("請輸入停車時長:"))
a = a-1
# 請計算需要收取的停車費
s = int(a+1)
print(s)
實現加密器
請用程序實現
輸入一個整數num,將輸入的數字進行加密,並將加密後的結果輸出。
以下爲加密的規則:
1.加密結果 = (整數 * 10 + 5) / 2 + 3.14159
2. 加密結果仍爲一整數
示例 1
輸入 | 輸出 |
---|---|
20 | 105 |
示例 2
輸入 | 輸出 |
---|---|
35 | 180 |
# 請使用 input() 輸入一個整數 num
num = eval(input())
# 請對數字 num 進行加密,並將加密結果輸出
num = (num*10+5)/2+3.14159
num = int(num)
print(num)
判斷奇偶數
請用程序實現: 輸入一個整數,判斷它是奇數還是偶數。如果是奇數,輸出odd;如果是偶數,輸出even。
示例1
輸入 | 輸出 |
---|---|
12 | even |
示例2
輸入 | 輸出 |
---|---|
13 | odd |
# 請使用 input() 輸入一個整數 num
num = int(input("輸入一個整數:"))
# 請判斷這個數是奇數還是偶數
if num % 2 == 0:
print('even')
else:
print('odd')
公倍數
請用程序實現
輸入一個正整數,判斷它是否是5和7的公倍數。如果是,輸出yes;如果不是,輸出no。
示例 1
輸入 | 輸出 |
---|---|
35 | yes |
示例 2
輸入 | 輸出 |
---|---|
36 | no |
# 請使用 input() 輸入一個正整數 num
num = int(input("輸入一個正整數:"))
# 請判斷這個正整數是否是 5 和 7 的公倍數
if num % 35 == 0:
print('yes')
else:
print('no')
天天向上的力量第一問
請用程序實現
計算千分之一的力量。
要求如下:
(1) 計算一年 365 天,每天進步千分之一,累計進步到多少,並將計算結果輸出。
(2) 計算一年 365 天,每天退步千分之一,累計剩下多少,並將計算結果輸出。
(3) 輸出時,在一行內輸出進步的結果和退步的結果。
示例
輸出
向上:***, 向下:***
dayup = pow(1.001, 365)
daydown = pow(0.999, 365)
print("向上:%.2f,向下:%.2f"%(dayup, daydown))
天天向上的力量第二問
請用程序實現
計算千分之五和百分之一的力量。
要求如下:
(1) 計算一年 365 天,每天進步千分之五或百分之一,累計進步到多少,並將計算結果輸出。
(2) 計算一年 365 天,每天退步千分之五或百分之一,累計剩下多少,並將計算結果輸出。
(3) 輸出時,在一行內輸出進步的結果和退步的結果。
示例
輸出
向上:***, 向下:***
dayfactor = 0.005
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
天天向上的力量第三問
請用程序實現
工作日的力量。
要求如下:
(1) 一年 365 天,一週 5 個工作日,每天進步 1%;
(2) 一年 365 天,一週 2 個休息日,每天退步 1%;
(3) 計算按照工作日和休息日的進步或退步情況,經過一年 365 天后,累計剩下多少,並將計算結果輸出。
(4) 輸出時,在一行內輸出計算的結果。
#daydayupQ3.py
dayup = 1.0
dayfactor = 0.01
for i in range(365):
if i % 7 in [6,0]:
dayup = dayup * (1-dayfactor)
else:
dayup = dayup * (1+dayfactor)
print("工作日的力量:{:.2f}".format(dayup))
天天向上的力量第四問
工作日模式要努力到什麼水平,才能與每天努力進步 1% 一樣?
A君: 一年 365 天,每天進步 1%,不停歇,365天之後,達到37.78
B君: 一年 365 天,每週工作 5 天休息 2 天,休息日每天退步 1%,那麼工作日應該多努力才能追上A君呢?
請用程序實現
計算要使 B君 和 A君 一年後的進步程度一樣,那麼 B君 每天需要進步的值,並將計算結果輸出。
要求如下:
(1) 一年 365 天,以第 0 天的能力值爲基數,記爲 1.0;
(2) 當好好學習時,能力值相比前一天提高 1%;當沒有學習時,由於遺忘等原因能力值相比前一天下降 1%;
(3) 輸出保留小數點後三位,冒號後有一個空格。如:
工作日的努力參數是: 0.019。
#DayDayUpQ4.py
def dayUp(df): #根據df參數計算工作日力量的函數參數不同,這段代碼可共用def保留字用於定義函數
dayup = 1
for i in range(365):
if i%7 in [6,0]:
dayup = dayup*(1-0.01)
else:
dayup = dayup*(1+df)
return dayup
dayfactor = 0.01
while dayUp(dayfactor) <37.78: #while保留字判斷條件是否成立,條件成立時循環執行
dayfactor += 0.001
print("工作日的努力參數:{:.3f}".format(dayfactor))
刪除字符
請用程序實現
刪除預置代碼中字符串string中的一部分。
要求如下:
(1) 分兩行輸入兩個整數,第一個整數表示字符串 string 的索引 begin,第二個整數表示需要刪除的長度 length。
(2) 將字符串 string 中,從索引 begin 開始,長爲 length 的子字符串刪除。
(3) 輸出字符串 string 刪除後剩下的部分。
示例 1
輸入 | 輸出 |
---|---|
2 3 |
abfghijklmnopqrstuvwxyz |
示例 2
輸入 | 輸出 |
---|---|
1 5 |
aghijklmnopqrstuvwxyz |
string = 'abcdefghijklmnopqrstuvwxyz'
# 請使用 input() 輸入索引 begin 和長度 length
begin=int(input())
length=int(input())
# 請將字符串 string 中,從索引 begin 開始,長爲 length 的字符串刪除,並將剩下的字符串內容輸出
str1=list(string)
del str1[begin:begin+length]
for i in range(len(str1)):
print(str1[i],end="")
插入字符
請用程序實現
已知字符串 s ,請將另一個字符串 sub 添加到字符串 s 的指定索引位置中,並將添加後的 s 輸出。
示例
輸入
**(第1行是需添加的字符串 sub)
2(第2行是指定的添加位置索引 pos(從0開始計算),且 pos 是字符串 s 的有效索引位置)
輸出
abc**defghijklmnopqrstuvwxyz
s = 'abcdefghijklmnopqrstuvwxyz'
sub=input()
pos=int(input())
str1=list(s)
str1.insert(pos,sub)
for i in range(len(str1)):
print(str1[i],end="")
你中無我
請用程序實現
給定兩個字符串 s1, s2,刪除字符串 s1 中的屬於 s2 的字符,並輸出結果。
示例 1
輸入 | 輸出 |
---|---|
i love python(第1行輸入爲 s1字符串) io(第2行輸入爲 s2字符串) |
lve pythn(輸出刪除後的 s1字符串) |
示例 2
輸入 | 輸出 |
---|---|
i love python this |
love pyon |
s1=input()
s2=input()
for i in s1:
if i not in s2:
print(i,end="")
拼接最大字符
請用程序實現
輸入兩個長度相等的字符串,將兩字符串中相同索引中較大的字符組成一個新的字符串並輸出,使用 ASCII 碼來比較字符大小。
注:如 ASCII 碼相等,任選 1 個
輸入格式
在兩行中分別輸入兩個字符串,長度相等
輸出格式
在一行中輸出結果字符串
示例 1
輸入 | 輸出 |
---|---|
cat dog |
dot |
示例 2
輸入 | 輸出 |
---|---|
brother sisters |
srsthrs |
# 請使用 input() 輸入兩個字符串 string1, string2
string1=input()
string2=input()
# 請分別比較兩個字符串中的每一個字符,將大的字符拼接成一個新的字符串,並輸出
str1=list(string1)
str2=list(string2)
for i in range(len(string1)):
if str1[i]>=str2[i]:
print(str1[i],end="")
if str1[i]<str2[i]:
print(str2[i],end="")
單詞轉換
請用程序實現:輸入一段英文文本 text,將文本中的單詞分別按照 全部小寫、全部大寫 和 標題化 格式輸出。
提示:使用字符串的內建函數。
運行你的程序,使控制檯顯示如下內容:
請輸入一段文本: Beautiful is better than ugl.
全部小寫: beautiful is better than ugl.
全部大寫: BEAUTIFUL IS BETTER THAN UGL.
標題化: Beautiful Is Better Than Ugl.
# 請使用 input() 輸入一段文本 text
text = input()
# 請將文本中的單詞分別按照 全部小寫、全部大寫 和 標題化 格式輸出
print("全部小寫:"+text.lower()) # 把所有字符中的大寫字母轉換成小寫字母
print("全部大寫:"+text.upper()) # 把所有字符中的小寫字母轉換成大寫字母
print("標題化:"+text.title()) # 把每個單詞的第一個字母轉化爲大寫,其餘小寫
統計詞量
請用程序實現
輸入一段僅由英文字母、空格組成的文本,並通過split()方法統計這段文本中的單詞數量,並將統計結果輸出。
示例 1
輸入 | 輸出 |
---|---|
i love python | 3 |
示例 2
輸入 | 輸出 |
---|---|
hello this is lee who are you | 7 |
# 請使用 input() 輸入一斷文本 text
def word_len(text):
return len([i for i in text.split(' ') if i])
def main():
text= str(input("請輸入字符串:"))
len= word_len(text)
print(len)
main()
# 請統計這段文本中的單詞數量,並將統計結果輸出
迴文字符串
如果一個字符串從左往右讀與從右往左讀是相同的字符串,那麼這個字符串就是迴文字符串。如 “level”、"noon"都是迴文字符串。
請用程序實現
輸入一個字符串,判斷它是否爲迴文字符串。如果是迴文字符串,輸出yes;如果不是迴文字符串,輸出no。
示例 1
輸入 | 輸出 |
---|---|
oppo | yes |
示例 2
輸入 | 輸出 |
---|---|
vivo | no |
s=input()
s1=list(s)
s1.reverse()
s2=list(s)
if s1==s2:
print("yes")
else:
print("no")
過濾敏感字符
請用程序實現:輸入一段英文文本 text,將其中出現的敏感詞改爲*** (三個星號),並將更改後的內容輸出。
注意:敏感字符包括 “fuck”、“shit”、“bitch”,其他的暫不考慮。
運行你的程序,使控制檯顯示如下內容:
**請輸入一段英文文本: Oh, fuck! I’ve lost my keys.
Oh, *! I’ve lost my keys.
請在右側編輯器中編寫代碼,完成練習。
# 請使用 input() 輸入一段英文文本 text
text = input()
Is = ["fuck","shit","bitch"]
# 請將文本中出現的敏感詞改爲`***`,並將更改後的內容輸出
for i in Is:
if i in text:
text = text.replace(i,"***")
print(text)
時間格式化
請根據視頻內容的講解,獲取當前時間,並將獲取到的時間按照年-月-日 時:分:秒的格式打印輸出。
import datetime,time
# 獲取當前時間
now_time = datetime.datetime.now()
# 格式化時間字符串
str_time = now_time.strftime("%Y-%m-%d %X")
tup_time = time.strptime(str_time,"%Y-%m-%d %X")
time_sec = time.mktime(tup_time)
# 轉換成時間戳 進行計算
time_sec += 1
tup_time2 = time.localtime(time_sec)
str_time2 = time.strftime("%Y-%m-%d %X",tup_time2)
print(str_time)
print(str_time2)
文本進度條
採用字符串方式打印可以動態變化的文本進度條,進度條需要能在一行中逐漸變化.
要求如下:
(1) 採用 sleep() 模擬一個持續的進度,獲得文本進度條的變化時間;
(2) 通過 print() 函數實現單行動態刷新,在 print() 函數中更換參數 end 的默認值爲''
,每次使用 print() 函數輸出時不能換行;
(3) 要能回退:打印後光標到之前的位置\r
。
請在 Windows 的命令行(cmd 或 PowerShell)或其他操作系統的命令行下執行 Python 程序,獲得進度條效果。
輸出示例:
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,'-'))