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

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

有没有小伙伴跟我一样只能输出整个时间
计算机二级python基础题刷题笔记(三)_第1张图片

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

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

你可能感兴趣的:(python学习,python,笔记,java)