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

题目一

随机选择一个手机品牌输出

# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:请不要修改其他已给出代码

import ______
brandlist = ['华为','苹果','诺基亚','OPPO','小米']
random.seed(0)
...... 
print(name)

answer:

import random
brandlist = ['华为','苹果','诺基亚','OPPO','小米']
random.seed(0)
i = random.randint(0,4)
name = brandlist[i]
print(name)

OPPO

考查的是random库的使用,尤其注意randint的拼写,和random.randint(a,b)区间[a,b]两边都是闭的。

题目二

从键盘上输入4个数,四个数用空格分隔,对应变量x0,y0,x1,y1;计算两点(x0,y0),(x1,y1)之间的距离,输出保留两位小数。

# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码

ntxt = input("请输入4个数字(空格分隔):")
______
x0 = eval(nls[0])
y0 = eval(nls[1])
x1 = eval(nls[2])
y1 = eval(nls[3])
r = pow(pow(x1-x0, 2) + pow(y1-y0, 2), ______) 
print("{:.2f}".format(r))

answer:

nls = ntxt.split()
0.5

考查的是字符串的处理方法,str.split(seq)函数,将str按照seq进行分割,将结果以列表形式返回。还有后面输出两位小数由字符串的format格式化。

题目三

从键盘上输入一个9800~9811之间的一个正整数,作为Unicode编码,把n-1、n和n+1三个Unicode编码对应字符按照要求输出到屏幕上,要求:宽度为11个字符,加号字符+填充,居中

# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码

n = eval(input("请输入一个数字:"))
print("{______}".format(______))
n = eval(input("请输入一个数字:"))
print("{:+^11}".format(chr(n-1)+chr(n)+chr(n+1)))

请输入一个数字:9802
++++♉♊♋++++

考查字符串的format格式输出和字符串的处理函数

题目四

从键盘上输入一段文本,用python内置函数和jieba库中已有函数计算字符串的中文字符数和中文词语数

# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码

import jieba
s = input("请输入一个字符串")
n = ______ 
m = ______
print("中文字符数为{},中文词语数为{}。".format(n, m))

answer:

import jieba
s = input("请输入一个字符串")
n = len(s)
m = len(jieba.lcut(s))
print("中文字符数为{},中文词语数为{}。".format(n, m))

中文字符数为8,中文词语数为3

考查jieba分词,注意jieba.lcut()函数

题目五

键盘上输入一句话,jieba分词后,将分词的短语逆序输出到屏幕上,注意词语间没有空格。

# 请在______处使用一行代码或表达式替换
#
# 注意:请不要修改其他已给出代码

import jieba
txt = input("请输入一段中文文本:")
______
for i in ls[::-1]:
    ______

answer:

import jieba
txt = input("请输入一段中文文本:")
ls = jieba.lcut(txt)
for i in ls[::-1]:
    print(i)

杯
世界足球
俄罗斯

可以发现输出形式与要求不同,如果不希望换行或想增加其他内容,可以使用end函数

print(i,end='')
请输入一段中文文本:我爱妈妈
妈妈爱我

考查jieba分词和字符串的索引,注意输出的有要求。

题目六

获得用户输入的一个数字,对该数字以30字符宽度,十六进制,居中输出,字母小写,多余字符采用双引号(”)

n = eval(input('please input a number'))
print('{:"^30x}'.format(n))

please input a number125
""""""""""""""7d""""""""""""""

对于精度和类型的格式化还需多加练习

题目七

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

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

请输入一个正整数3
01>
02>>
03>>>

可见基本操作题对于字符串的处理较多,加以重视。

题目八

在这里插入图片描述

# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
# 请在______处使用一行代码替换
#
# 注意:提示框架代码可以任意修改,以完成程序功能为准

txt = input("请输入类型序列: ")
t = txt.split()
d = {}
for i in range(len(t)):
    d[t[i]] = d.get(t[i],0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True)  # 按照数量排序
for k in ls:
    print("{}:{}".format(k[0], k[1]))

请输入类型序列: 综合 理工 综合 综合 综合 师范 理工
综合:4
理工:2
师范:1

考查字典的使用

题目九

编写 Python 程序输出一个具有如下风格效果的文本,用作文本进度条样式,部分代码如下,填写空格处。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

10%@==
20%@====
100%@====================
‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭
前三个数字,右对齐;后面字符,左对齐‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬
文本中左侧一段输出 N 的值,右侧一段根据 N 的值输出等号,中间用 @ 分隔,等号个数为 N 与 5 的整除商的值,例如,当 N 等于 10 时,输出 2 个等号。

N = eval(input())   # N取值范围是0—100,整数
print('{:>3}%@{}'.format(N,'='*(N//5))) 

练习十

以论语中一句话作为字符串变量 s,补充程序,分别输出字符串 s 中汉字和标点符号的个数。

s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0  # 汉字个数
m = 0  # 标点符号个数
for i in s:
    if i ==',' or i=='?':
        m+=1
    else:
        n+=1
print('汉字个数为{} ,标点符号个数为{}'.format(n,m))

汉字个数为30 ,标点符号个数为6

另外一种编程方法用到字符串的处理函数

s = "学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?"
n = 0  # 汉字个数
m = 0  # 标点符号个数
m = s.count(',')+s.count('?')
n = len(s)-m
print('汉字个数为{} ,标点符号个数为{}'.format(n,m))

汉字个数为30 ,标点符号个数为6
  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值