计算机二级python基础题刷题笔记(二)

1、等比数列

1、获得用户输入的以逗号分隔的三个数字,记为a,b,c,以a为起始数值,b为前后相邻数的比值,c为数列长度
,产生一个等比数列,将这个数列以逗号分隔的形式输出,最后一个元素输出后无逗号
等比数列公式:
在这里插入图片描述
所给代码如下所示:

#请完善如下代码,不得修改其他代码
a,b,c = 
ls = []
for i in range(c):

print(",".join(ls))
a,b,c = eval(input())
for i in range(c):
    print(a*b**i,end=',')

有没有跟我一样时这样写的,发现最后一个元素输出后时有逗号的
在这里插入图片描述
如何去除最后一个元素并且不修改其他代码呢?说实话暂时还没有找到方法因为它最后固定了那个使用join方法进行逗号的处理,所以在这里外面应该换一种方法。
join方法详解:
Python中的join()函数可以把列表、元组、字符串(str)和生成器(generator)类型的数据用某个字符连接起来。
join函数的定义
Python中的join()函数用于连接字符串序列,且字符串序列的分隔符可以自定义,返回连接后的新字符串。其语法为:

str.join(sequence)

其中,str表示分隔符,sequence表示需要连接的字符串序列。
join函数的使用方法
当我们需要把一个序列中的字符串连接起来,我们可以使用join函数,这个函数的返回值就是元素之间用分隔符链接起来的一个字符串。具体的实现步骤如下:
(1)首先需要定义一个需要连接的序列,比如列表、元组、字符串等类型。
(2)然后定义一个分隔符,用来将这些元素连接起来。
(3)调用join()方法,并将这个分隔符作为参数传入。

a,b,c = eval(input())
ls = []
for i in range(c):
    ls.append(str(a*b**i))#join()函数可以把列表、元组、字符串(str)和生成器(generator)类型的数据用某个字符连接起来
print(",".join(ls))

在这里插入图片描述

2、字符串

程序接收用户输入的五个数,以逗号分隔,将这些数字按照输入顺序输出,每个数字占10个字符宽度,右对齐,所以数字显示在同一行。
split用法详解:
string.split(str, max)
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
max – 分割次数。规定要执行的拆分数。默认值为 -1,即“所有出现次数”。
注意里面没有" "双引号。

num = input().split(",")#用列表来做,将输入的五个数以逗号分隔,然后放入列表中
for i in num:
    print("{:>10}".format(i),end="")#对列表本身进行遍历,记得将结尾默认成空

3、简单计算题

社会平均工作时间时每天8小时(不区分工作日和休息日),一位计算机科学家接收记者采访时说,他每天工作时间比社会平均工作时间多3小时。如果这位科学家的当下成就值是1,假设每工作1个小时成就值增加0.01%,计算并输出两个结果,这位科学家5年后的成就值,以及达到成就值100所需要的年数。其中,成就值和年数都以整数表示,每年以365天计算。
如果大家不太清楚其中关系,我觉得这个可以自己先手算一遍捋清楚再写代码。做这种题千万别慌,别乱。

scale = 0.0001#成就值增量
def calv(base,day):
    val = base * pow((1+scale),day*11)
    return val
print('5年后的成就值是{}'.format(int(calv(1,5*365))))

year = 1
while calv(1,year*365) < 100:
    year += 1
print('{}年后成就值是100'.format(year))

4、判断正整数

程序接收用户输入的一个数字并判断是否为正整数,如果不是正整数,则显示"请输入正整数"并等待用户重新输入,直至输入正整数为止,并显示输出该正整数。
如何判断这个数为正整数
下面代码给出了三种方法,分别是
a > 0 and a % 1 == 0
a > 0 and type(a)==int
a > 0 and a == int(a)

while True:
    try:#异常处理结构
        a = eval(input("请输入一个正整数:"))
		#if a > 0 and a % 1 == 0:
		#if a > 0 and type(a)==int:
         if a > 0 and a == int(a):
            print(a)
            break#跳出循环
         else:
             print("请输入正整数")
    except:
    print("请输入正整数")

感觉难度上来了哈哈加油加油!!

5、按要求输出数字

接收用户输入的一个小于20的正整数,在屏幕上逐行递增显示从01到该正整数,数字显示的宽度为2,不足位置补0,后面追加一个空格,然后显示’>'号,’>'号的个数等于行首数字。

n = input('请输入一个正整数')
for i in range(1,eval(n)+1):
    print('{:02} {}'.format(i, '>' * i))

6、计算数字与字母的个数

让用户输入一串数字和字母混合的数据,然后统计其中数字和字母的个数,显示在屏幕上。
最简单的一个!

ns = input("请输入一串数据:")
dnum,dchr = 0,0#结果死在这里,,,我的脑子呢????
for i in ns:
    if i.isnumeric():
        dnum += 1
    elif i.isalpha():
        dchr += 1
    else:
        pass
print('数字个数:{},字母个数:{}'.format(dnum,dchr))

今天就到这里啦祝大家都顺利通过二级!!!!!

扫描二维码关注公众号,回复: 16798282 查看本文章

猜你喜欢

转载自blog.csdn.net/m0_68165821/article/details/132921726
今日推荐