Python初学者自励——基本数据类型

第三章基本数据类型练习
判断奇偶数
请用程序实现: 输入一个整数,判断它是奇数还是偶数。如果是奇数,输出odd;如果是偶数,输出even。

# 请使用 input() 输入一个整数 num
num = int(input())

# 请判断这个数是奇数还是偶数
i = num%2
if(i==0):
    print("even")
else:
    print("odd")

========================================
公倍数
请用程序实现
输入一个正整数,判断它是否是5和7的公倍数。如果是,输出yes;如果不是,输出no。

# 请使用 input() 输入一个正整数 num
num = int(input())
if(num<0):
    print("请确保你输入的是正整数")

# 请判断这个正整数是否是 5 和 7 的公倍数
if((num%5==0)&(num%7==0)):
    print("yes")
else:
    print("no")

=====================================
判断平闰年
如果一个年份可以被 4 整除且不能被 100 整除,或者可以被 400 整除,那么这个年份就是闰年。

请用程序实现
输入一个年份year,判断它是「平年」还是「闰年」。如果是平年,输出common year;如果是闰年,输出leap year。

# 请使用 input() 输入一个年份 year
year = int(input())
# 请判断这个年份是否为闰年
if((year%4==0)and(year%100!=0)or(year%400==0)):
    print("leap year")
else:
    print("common year")

=====================================
天天向上的力量第一问
请用程序实现
计算千分之一的力量。

要求如下:

(1) 计算一年 365 天,每天进步千分之一,累计进步到多少,并将计算结果输出。

(2) 计算一年 365 天,每天退步千分之一,累计剩下多少,并将计算结果输出。

(3) 输出时,在一行内输出进步的结果和退步的结果。`

#天天向上
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))

=====================================
天天向上的力量第二问
请用程序实现
计算千分之五和百分之一的力量。

要求如下:

(1) 计算一年 365 天,每天进步千分之五或百分之一,累计进步到多少,并将计算结果输出。

(2) 计算一年 365 天,每天退步千分之五或百分之一,累计剩下多少,并将计算结果输出。

(3) 输出时,在一行内输出进步的结果和退步的结果。

示例

dayfactor = 0.05
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) 输出时,在一行内输出计算的结果。

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

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("工作日的努力参数是:{:.2f}".format(dayfactor))

=====================================
拼接最大字符
请用程序实现
输入两个长度相等的字符串,将两字符串中相同索引中较大的字符组成一个新的字符串并输出,使用 ASCII 码来比较字符大小。

# 请使用 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="")

=====================================
删除字符
有字符串如下:

string = ‘abcdefghijklmnopqrstuvwxyz’
请用程序实现
删除字符串string中的一部分。

要求如下:

(1) 分两行输入两个整数,第一个整数表示字符串 string 的索引 begin,第二个整数表示需要删除的长度 length。

(2) 将字符串 string 中,从索引 begin 开始,长为 length 的子字符串删除。

(3) 输出字符串 string 删除后剩下的部分。

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 输出。

输入格式
输入包含 2 行字符串:

第1行是需添加的字符串 sub
第2行是指定的添加位置索引 pos(从0开始计算),且 pos 是字符串 s 的有效索引位置

s = 'abcdefghijklmnopqrstuvwxyz'
sub=input()
pos=int(input())
str1=list(s)
str1.insert(pos,sub)
for i in range(len(str1)):
    print(str1[i],end="")

=====================================
回文字符串
如果一个字符串从左往右读与从右往左读是相同的字符串,那么这个字符串就是回文字符串。如 “level”、"noon"都是回文字符串。

请用程序实现
输入一个字符串,判断它是否为回文字符串。如果是回文字符串,输出yes;如果不是回文字符串,输出no。

输入格式
在 1 行中输入一个不超过 100 长度的字符串

输出格式
如果是回文,输出 yes,如果不是,输出 no

string = input()
length = len(string)
flag = 1#标志,默认是回文
for i in range(length//2):#//是整数除法
    if string[i] != string[length - 1 -i]:
        print('no')
        flag = 0#改变默认是回文标志
        break
if flag:
    print('yes')

统计词量
请用程序实现
输入一段仅由英文字母、空格组成的文本,统计这段文本中的单词数量,并将统计结果输出。

输入格式
在 1 行中输入一段英文文本

输出格式
统计单词数量,并在 1 行上输出结果

# 请使用 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()

=====================================
你中无我
请用程序实现
给定两个字符串 s1, s2,删除字符串 s1 中的属于 s2 的字符,并输出结果。

输入格式
输入两行字符串,第1行输入为 s1,第2行输入为 s2

输出格式
在1行中输出删除后的 s1

s1 = input()
s2 = input()
for each in s1:
    if each not in s2:
        print(each, end = '')

=====================================
时间格式化
请根据视频内容的讲解,获取当前时间,并将获取到的时间按照年-月-日 时:分:秒的格式打印输出。

import time
time.time()
t = time.gmtime()
time.strftime("%Y-%m-%d %H:%M:%S",t)

=====================================
文本进度条
采用字符串方式打印可以动态变化的文本进度条‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬,进度条需要能在一行中逐渐变化.

进度条

要求如下:‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

(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,'-'))

==========================================================================
以上内容可供初学者进行练习,欢迎大家转载转发,注明出处即可。

你可能感兴趣的:(python基本数据类型练习)