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

2023-09-17 17:04:24

hello,看到三的小伙伴们你们已经超过30%的对手啦!接下来也要加油呀
代码没有最好,只有更好,如果你有更好的想法答案欢迎在评论区里发表呀

1、将程序里定义好的std列表里的姓名和成绩与已经定义好的模板拼成一段话,显示在屏幕里。

std = [['张三',90,87,95],['李四',83,80,87],['王五',73,57,55]]
modl = "亲爱的{},你的考试成绩是:英语{},数学{},python语言{},总成绩{},特此通知."
for st in std:
	cnt = 
	for i in range():
		cnt += 
	print(modl.format(st[0],st[1],st[2],st[3],cnt))

俺自己写的

std = [['张三',90,87,95],['李四',83,80,87],['王五',73,57,55]]
modl = "亲爱的{},你的考试成绩是:英语{},数学{},python语言{},总成绩{},特此通知."
for st in std:
	cnt = 0
	for i in range(1,4):
		cnt += int(st[i])
	print(modl.format(st[0],st[1],st[2],st[3],cnt))

居然跟视频里的一样
不过弹幕中说还可以range(1,len(st)) 个人感觉有点投机取巧~

2、接收用户输入的一个大于10小于10^8的十进制正整数,输出这个正整数各字符的和,以25为宽度,居中显示,采用等号=填充。

s = input("请输入一个正整数:")
cs = 0
for c in s:
	cs += eval(c)#或者int(c)直接强制转化为整数类型
print('{:=^25}'.format(cs))

3、接收用户输入的数据,该数据仅由字母和中文混合构成,无其他类型字符,统计并输出中文字符出现的个数。

s = input("请输入中文和字母的组合:")

for c in s:
	if :
		count += 1
print(count)

这道题的难点我觉得在于如何判断是中文
视频的老师使用的为是否属于 Unicode 编码范围内的汉字,而有的同学在弹幕里说能不能判断是否不为字母比如not c.isascii(),isalpha()这种,实属投机取巧哈哈~我没试过不太清楚可不可以啊

s = input("请输入中文和字母的组合:")
count = 0
for c in s:
	if '\u4e00' <= c <= '\u9fff':#是否属于 Unicode 编码范围内的汉字可强记
		count += 1
print(count)

4、判断并输出最大值

接收用户输入的以英文逗号分隔的一组数据,其中,每个数据都是整数或浮点数,打印出这组数据中的最大值
题目所给代码:

s = input("请输入一组数据:")
ls = 
lt = []
for i in ls:
	lt.append()
print(max(lt))

这道题有点小难,作者深刻认识到了自己的基础知识真的不太好
写一下过程吧首先输入了以英文逗号分隔的一组数据的一整个字符串,然后外面需要对这个字符串进行分隔,当然以逗号进行,然后创建了一个空列表为lt,接着循环遍历ls,在lt中添加分隔开的数据,但是此时分隔出来的还是一个一个字符串外面需要把它先转化为数字类型不然下面无法进行计算。完整代码如下:

s = input("请输入一组数据:")
ls = s.split(',')
lt = []
for i in ls:
	lt.append(eval(i))
print(max(lt))

5、接收用户输入的一个浮点数,输出这个歌浮点数的小数部分各字符的和,以10为宽度,靠右显示,采用星号*填充。

s = input("请输入一个小数:")
s = s[::-1]

for c in s:
	if c == '.':
		
	cs += eval(c)
print('{ }'.format(cs))

看过一二的同学必须学这道题!

s = input("请输入一个小数:")
s = s[::-1]
cs = 0
for c in s:
	if c == '.':
		break
	cs += eval(c)
print('{:*>10}'.format(cs))

6、time库是python语言中与时间处理相关的标准库,time库中ctime()函数能过将一个表示时间的浮点数变成人类可以理解的时间格式。

import time
t = input("请输入一个浮点数时间信息:")
s = time.ctime()
ls = s.split()
print()

有没有小伙伴跟我一样只能输出整个时间
在这里插入图片描述

import time
t = input("请输入一个浮点数时间信息:")
s = time.ctime(eval(t))
ls = s.split()
print(ls[3])

说明对列表不够熟悉还需要完善相关内容
正确答案就是还需要在这个时间上面进行切片如下:

import time
t = input("请输入一个浮点数时间信息:")
s = time.ctime(eval(t))
ls = s.split()
print(ls[3][0:2])

7、用户按照列表格式输入数据,将用户输入的列表中属于字符串类型的元素连接成一个整字符串,并打印输出。

ls = eval(input())
s = ""
for item in ls:
	if  ==type("香山"):
		s += 
print(s)

注意这里这个==,说明需要两边类型一致才能进行判断type

ls = eval(input())
s = ""
for item in ls:
	if  type(item) == type("香山"):
		s += item
print(s)

8、以25为种子,随机生成1个1~100之间的整数,让用户来猜,用户最多只能猜6次。接收用户输入的数字,输入的数字和随机数相同时,则打印“恭喜你,猜对了!”,然后程序结束,若输入的数比随机数小,则打印“小了,请再试试”,程序继续,若输入的数比随机数大,则打印“大了,请再试试”,程序继续,若6次还没猜对,在评判大小后,输出“谢谢!请休息后再猜”,然后程序退出。

import random
random.seed(25)
n = 
for m in range(1,7):
	x = eval(input("请输入猜测数字:"))
	if x == n:
		print("恭喜你,猜对了!")
		break
	elif  :
		print("大了,再试试")
	else:
		print("小了,再试试")
	if :
		print("谢谢!请休息后再猜")

简单题+1

import random
random.seed(25)
n = random.randint(1,100)
for m in range(1,7):
	x = eval(input("请输入猜测数字:"))
	if x == n:
		print("恭喜你,猜对了!")
		break
	elif x > n:
		print("大了,再试试")
	else:
		print("小了,再试试")
	if m == 6:
		print("谢谢!请休息后再猜")

9、让用户输入一个自然数,如果n为奇数,输出表达式1+1/3+1/5+…+1/n的值,如果n为偶数,输出表达式1/2+1/4+1/6+…1/n的值,输出结果保留两位小数

def f(n):

	if  :
		for i in range(1,n+1,2):
			s += 1/i
	else:
		for i in range(2,n+1,2):
			s += 1/i
	return s
n = int(input())
print()

写出+1+1
如何判断为奇数除以2的余数等于1则为奇数如果等于0则为偶数

def f(n):
	s=0
	if n%2==1:
		for i in range(1,n+1,2):
			s += 1/i
	else:
		for i in range(2,n+1,2):
			s += 1/i
	return s
n = int(input())
print(f(n))

忘了还有一个约束条件保留两位小数
这才是真正的正确答案~

def f(n):
	s=0
	if n%2==1:
		for i in range(1,n+1,2):
			s += 1/i
	else:
		for i in range(2,n+1,2):
			s += 1/i
	return s
n = int(input())
print('{:.2f}'.format(f(n)))

10、获得用户输入的一个整数,输出一个n-1行的数字三角形阵列。该阵列每行包含的整数序列为从该行开始到n-1,例如第1行包含1到n-1的整数,第i行包含从i到n-1的整数,数字之间用英文空格分隔。

n = eval(input("请输入一个整数:"))
for i in range(1,n):
	for i in range(1,n):
		if i>n-1:
			break
	print()

这种题最重要的就是理清楚i,j到底代表着行列还是什么

n = eval(input("请输入一个整数:"))
for i in range(1,n):#i=1
	for j in range(1,n):#j=1
		if i<=j<n:
			print(j,end=' ')
	print()

11、获得用户输入的5个小写英文字母,将小写字母变成大写字母,并逆序输出,字母之间用逗号分隔。

s = input("请输入5个小写字母:")
s = s.upper()
print(','.join(s[::-1))

这道题需要记住一个函数upper,相应的有lower将大写字母转化为小写字母

s = input("请输入5个小写字母:")
s = s.upper()
print(','.join(s[::-1]))
s = input("请输入5个大写字母:")
s = s.lower()
print(','.join(s[::-1]))

11、获得用户输入的一个整数,记为n,以100为随机种子

import random
n = eval(input())
random.seed(100)
for i in range(1,11):
	if i < 10:
		print(random.randint(1,n),end=',')
	else:
		print(random.randint(1,n))

12、让用户输入一个符号作为填充字符,将“PYTHON”字符串以30字符宽、居中、其余部分以填充字符的形式格式化输出。

与之前做的题有一点点儿不同

a = input("请输入填充符号:")
s = "PYTHON"
print("{}".format())

很神奇en

a = input("请输入填充符号:")
s = "PYTHON"
print("{:{}^30}".format(s,a))

13、获取一个由英文逗号、字母、汉字、数字字符组成的输入,计算该输入中所有数字的和并输出。

我写的

n=(input())
s = 0
ls = n.split(',')
for i in ls:
	if i.isdigit():
		s+=int(i)
print('数字和是{}'.format(s))

答案大差不差

myinput = input("请输入:")
ls = myinput.split(',')
s = 0
for c in ls:
	if c.strip(" ").isdigit():
		s+=eval(c)
print("数字和是:"+str(s))

14、文件

data.txt文件保存了一组汉字,输出该文件不同汉字的数量。
难点在于如何判断不同汉字

#完善代码
f.open('data.txt','r')
ls = []
for line in f:
	for c in line:
		if c not in ls:
			ls.append(c)			
f.close()
print(len(ls))

15、按照小写字母a到z顺序组成包含26个字母的字符表,其中,第一个字符a序号为0,依次递增。程序获得用户输入的起始字母序号及连续输出字母的个数,分别记为变量h和w,以逗号隔开,并根据字符表输出从起始字母序号h开始的连续w个字母。

h,w = eval(input("请输入起始英文字母的序号和连续输出的个数,逗号隔开:"))
cstr = ''
for i in range(w):
	c = chr(97+h+i)
	cstr += c
print(cstr)

16、获得用户输入的三个整数,以逗号分隔,分别记为:n,m,k,其中m>k。以1为随机种子,产生n个在k和m之间的随机整数(包括k和m),将这些随机数输出,每个数一行。

参考答案如下

import random as r
r.seed(1)
s = input("请输入三个整数 n,m,k:")
slist=s.split(",")
for i in range(eval(slist[0])):
	print(r.randint(eval(slist[2]),eval(slist[1])),end='\n')

好的基础题就到这啦接下来是简单应用题和综合应用啦
祝大家二级都顺利通过呀!

更多推荐

滚雪球学Java(29):数组长度和排序算法:让你的程序更高效

🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!前言在上一篇文章中,我们学习了数组的常用技巧和方法。本篇文章将深入探讨数组长度以及如何使用排序算法提高程序效率。摘要数组长度是数组中元素的个数,可以使用length属性获取。

Vue入门

Vue的介绍1.什么是vue?vue是一个渐进式js框架,它被设计用于构建用户界面和单页应用程序。Vue.js很容易上手,易于学习,并且是一种非常灵活的开发工具。1特点:轻量级:Vue.js的文件大小只有20KB左右,非常适合快速构建小型应用程序。双向数据绑定:Vue.js使用MVVM(Model-View-ViewM

【MATLAB第75期】#源码分享 | 基于MATLAB的不规则数据插值实现时间序列数据扩充

【MATLAB第75期】#源码分享|基于MATLAB的不规则数据插值实现时间序列数据扩充如时间数据以单位1为间隔排序,可插间隔为0.5的数据。一、实现效果1.规则间隔数据2.非规则间隔数据二、主程序代码1.插值测试效果%%清空环境变量warningoff%关闭报警信息closeall%关闭开启的图窗clear%清空变量

MySQL(3)索引实践一

一、索引下推:对于辅助的联合索引(name,age),正常情况按照最左前缀原则,SELECT*FROMuserWHEREnamelike'xiao%'ANDage=22这种情况只会走name字段索引,因为根据name字段过滤完,得到的索引行里的age是无序的,无法很好的利用索引。在MySQL5.6之前的版本,这个查询只

Matlab之并行程序设计实战教程

在本教程中,我们将介绍如何使用Matlab进行并行程序设计。我们将通过一个简单的示例来演示如何将串行代码转换为并行代码,以提高程序的执行效率。示例:计算一个数组的平方和假设我们有一个包含10000个元素的数组,我们想计算该数组的平方和。首先,我们来看看如何使用串行代码实现这个任务。%%串行代码array=1:10000

javase javaee javame

1.JavaSEJavaSE(JavaPlatform,StandardEdition):Java平台标准版。它是JavaEE和JavaME的基础,之前称为J2SE,用来开发C/S架构软件,通俗来讲,就是开发电脑桌面的应用软件、电脑上运行的软件,例如,Java应用程序开发平台Eclipse。同时也是Java的基础,Ja

阿里云服务器租用费用价格表(2023新版报价)

租用阿里云服务器怎么收费?阿里云服务器配置不同一年价格也不同,阿里云2核2G3M带宽108元一年、2核4G4M带宽297.98元12个月,云服务器u1公网带宽可选1M到5M,系统盘为ESSD云盘40GB起,CPU内存配置可选2核2G、2核4G、4核8G、8核16G等配置,还有ECS计算型c7、通用型g7和内存型r7多C

Python子进程管理与进程信息获取

1.Python子进程模块subprocesssubprocess模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。(1)run方法首先我们来看看run方法的使用,该方法的参数如下:args:表示要执行的命令。必须是一个字符串或字符串参数列表。stdin、stdout和stderr:子进程

【UE 粒子练习】05——创建光束类型粒子

效果步骤1.新建一个材质,这里命名为“Mat_Beam”设置材质域为表面,混合模式为半透明,着色模型为无光照材质节点如下:2.新建一个粒子系统,命名为“P_Beam”打开“P_Beam”,在发射器中新建一个光束数据在必需模块中将材质改为上一步创建的材质“Mat_Beam”在“光束数据”模块中,设置光束方法为“目标”,这

【Graph Net学习】DeepWalk/Node2Vec实现Graph Embedding

一、简介本文主要通过代码实战介绍基础的两种图嵌入方式DeepWalk、Node2Vec。DeepWalk(KDD2014):首个影响至今的图的Embedding算法,DeepWalk算法是一种用于学习节点表示的方法,常用于网络图中的节点的嵌入表示。模型目标输入输出Word2VecWordSentenceWordEmbe

Digger PRO - Voxel enhanced terrains

资源链接在文末DiggerPRO​​​是一个简单但强大的工具,可以直接从Unity编辑器或游戏中创建天然洞穴和悬岩。会让你感觉自己手中握有一个体素地形,且毫无瑕疵。它实际上保持着最新、最快且可靠的Unity地形系统,并在你需要的地方无缝创建洞穴/悬岩峭壁网格。Digger内部使用体素和MarchingCubes来创建网

热文推荐