目录
1.从尾到头
编写程序实现,将数字倒叙输出。
输入一个小于 500 的三位整数,将这个整数乘 2 得到一个新的数,将这个新的数从尾到头倒叙输出。
示例
输入
123
输出
642
# 从键盘输入一个三位数
num=input()
# 将其乘 2 后倒叙输出
num=int(num)
num=num*2
print("%d%d%d" %(num%10,int(num/10%10),int(num/100)))
2.抹零
现有小区停车收费规则如下,每小时收 1 元,1 小时内免费,不足一小时按 1 小时算。
编程实现:输入停车时长,计算并输出所需要收取的停车费。例如,从键盘输入1.5
,则输出所需要缴纳的停车费1
。
# 请输入停车时长
time=float(input())
# 请计算需要收取的停车费
if time<=1:
print(0)
elif time>1:
time=int(time-1)+1
print(time)
3.实现加密器
编程实现:输入一个整数num
,将输入的数字进行加密,并将加密后的结果输出。
以下为加密的规则:
- 加密结果 = (整数 * 10 + 5) / 2 + 3.14159
- 加密结果仍为一整数
示例 1
输入
20
输出
105
示例 2
输入
35
输出
180
# 请使用 input() 输入一个整数 num
num=int(input())
# 请对数字 num 进行加密,并将加密结果输出
num=int((num*10+5)/2+3.14159)
print(num)
4.判断奇偶数
请用程序实现: 输入一个整数,判断它是奇数还是偶数。如果是奇数,输出odd
;如果是偶数,输出even
。
示例1
输入
12
输出
even
示例2
输入
13
输出
odd
# 请使用 input() 输入一个整数 num
num=int(input())
# 请判断这个数是奇数还是偶数
if num%2==0:
print("even")
else:
print("odd")
5.公倍数
请用程序实现
输入一个正整数,判断它是否是5
和7
的公倍数。如果是,输出yes
;如果不是,输出no
。
示例 1
输入
35
输出
yes
示例 2
输入
36
输出
no
# 请使用 input() 输入一个正整数
num=int(input())
# 请判断这个正整数是否是 5 和 7 的公倍数
if num>0:
if num%5==0 and num%7==0:
print("yes")
else:
print("no")
6.天天向上的力量第一问
请用程序实现
计算千分之一的力量。
要求如下:
(1) 计算一年 365 天,每天进步千分之一,累计进步到多少,并将计算结果输出。
(2) 计算一年 365 天,每天退步千分之一,累计剩下多少,并将计算结果输出。
(3) 输出时,在一行内输出进步的结果和退步的结果。
示例
输出
向上:***, 向下:***
num1=pow(1.001,365)
num2=pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(num1,num2))
7.天天向上的力量第二问
请用程序实现
计算千分之五和百分之一的力量。
要求如下:
(1) 计算一年 365 天,每天进步千分之五或百分之一,累计进步到多少,并将计算结果输出。
(2) 计算一年 365 天,每天退步千分之五或百分之一,累计剩下多少,并将计算结果输出。
(3) 输出时,在一行内输出进步的结果和退步的结果。
示例
输出
向上:***, 向下:***
num1=pow(1.01,365)
num2=pow(0.99,365)
num3=pow(1.005,365)
num4=pow(0.995,365)
print("向上:{:.2f},{:.2f},向下:{:.2f},{:.2f}".format(num1,num3,num2,num4))
8.天天向上的力量第三问
请用程序实现
工作日的力量。
要求如下:
(1) 一年 365 天,一周 5 个工作日,每天进步 1%;
(2) 一年 365 天,一周 2 个休息日,每天退步 1%;
(3) 计算按照工作日和休息日的进步或退步情况,经过一年 365 天后,累计剩下多少,并将计算结果输出。
(4) 输出时,在一行内输出计算的结果。
dayfactor=0.01
dayup=1
for i in range(365):
if i%7 in [0,6]:
dayup=dayup*(1-dayfactor)
else:
dayup=dayup*(1+dayfactor)
print("经过一年 365 天后,累计剩下{:.2f}".format(dayup))
9.天天向上的力量第四问
工作日模式要努力到什么水平,才能与每天努力进步 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
。
def dayUP(df):
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:
dayfactor+=0.001
print("B君 每天需要进步的值:{:.3f}".format(dayfactor))
10.删除字符
请用程序实现
删除预置代码中字符串string
中的一部分。
要求如下:
(1) 分两行输入两个整数,第一个整数表示字符串 string 的索引 begin,第二个整数表示需要删除的长度 length。
(2) 将字符串 string 中,从索引 begin 开始,长为 length 的子字符串删除。
(3) 输出字符串 string 删除后剩下的部分。
示例 1
输入
2
3
输出
abfghijklmnopqrstuvwxyz
示例 1
输入
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="")
11.插入字符
请用程序实现
已知字符串 s ,请将另一个字符串 sub 添加到字符串 s 的指定索引位置中,并将添加后的 s 输出。
示例
输入
**(第1行是需添加的字符串 sub)
2(第2行是指定的添加位置索引)
输出
ab**cdefghijklmnopqrstuvwxyz
s = 'abcdefghijklmnopqrstuvwxyz'
sub=input()
num=int(input())
str=list(s)
str.insert(num,sub)
for i in range(len(str)):
print(str[i],end="")
12.你中无我
请用程序实现
给定两个字符串 s1, s2,删除字符串 s1 中的属于 s2 的字符,并输出结果。
示例 1
输入
i love python(第1行输入为 s1字符串)
io(第2行输入为 s2字符串)
输出
lve pythn(输出删除后的 s1字符串,l 前面的空格需保留)
示例 2
输入
i love python
this
输出
love pyon(输出删除后的 s1字符串,love 前面的空格需保留)
s1=input()
s2=input()
for i in s1:
if i not in s2:
print(i,end="")
13.拼接最大字符
请用程序实现
输入两个长度相等的字符串,将两字符串中相同索引中较大的字符组成一个新的字符串并输出,使用 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(str2[i],end="")
else:
print(str1[i],end="")
14.单词转换
请用程序实现:输入一段英文文本 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())
15.统计词量
请用程序实现
输入一段仅由英文字母、空格组成的文本,并通过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()
16.回文字符串
如果一个字符串从左往右读与从右往左读是相同的字符串,那么这个字符串就是回文字符串。如 “level”、"noon"都是回文字符串。
请用程序实现
输入一个字符串,判断它是否为回文字符串。如果是回文字符串,输出yes
;如果不是回文字符串,输出no
。
示例 1
输入
oppo
输出
yes
示例 2
输入
vivo
输出
no
string=input()
s1=list(string)
s1.reverse()
s2=list(string)
if s1==s2:
print("yes")
else:
print("no")
17.过滤敏感字符
请用程序实现:输入一段英文文本 text,将其中出现的敏感词改为***
(三个星号),并将更改后的内容输出。
注意:敏感字符包括 “fuck”、“shit”、“bitch”,其他的暂不考虑。
运行你的程序,使控制台显示如下内容:
请输入一段英文文本: Oh, fuck! I've lost my keys.
Oh, ***! I've lost my keys.
请在右侧编辑器中编写代码,完成练习。
# 请使用 input() 输入一段英文文本 text
text=input()
# 请将文本中出现的敏感词改为`***`,并将更改后的内容输出
string=["fuck","shit","bitch"]
for i in string:
if i in text:
text=text.replace(i,"***")
print(text)
18.时间格式化
请根据视频内容的讲解,获取当前时间,并将获取到的时间按照年-月-日 时:分:秒
的格式打印输出。
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)
19.文本进度条
采用字符串方式打印可以动态变化的文本进度条,进度条需要能在一行中逐渐变化.
要求如下:
(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,'-'))