python编程题评分标准_二级python程序题

1、利用random随机库里的函数,生成一个由四个大小写字母组成的验证码,显示在屏幕上

我的解答:

import random as r

zmb = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'

r.seed(1)

code=""

for i in range(4):

a=r.randrange(71,123)

code=code+str(chr(a))

print(code)

系统解答:

import random as r

zmb = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'

r.seed(1)

code = ''

for i in range(4):

code += r.choice(zmb)

print(code)

系统解析:

1.用随机数要导入random库,并记别名为r

2.先定义好要使用的英文字母表;

3.用seed(1)初始化随机函数,保证后面产生的随机数跟标准答案的一致

4.初始化密码code为一个空字符串;

循环4次,在循环里构造验证码的每个字符。从英文字母表里随机选取一个字母;用字符串的+=运算符,追加到密码变量上。

2、

第二题题目

系统解答:

import turtle as t

color = ['red','pink','green']

ra = [20, 50, 100]

pi = 3.14159

for i in range(3):

t.pu()

t.goto(0, -ra[i])

t.pd()

t.pencolor(color[i])

t.circle(ra[i])

t.done()

系统解析:

题目给出了基本数据的定义,后面要使用这些变量

在for循环里面,主要问题是画笔的定位,要考虑圆心的位置是(0,0)的时候,画笔要移动到圆心位置正下方,因此坐标点是(0,-ra[i])

画笔颜色要从颜色列表里选取

画圆的半径也从变量里面获取

3、

第三题图

系统解答:

members = {'张三':['人力部',5500],

'李四':['后勤部',4500],

'王三':['市场部',6500],

'赵六':['开发部',8500]

}

sal_dep = {}

for key in members:

print('{}的工资是:{}, 部门是{}'.format(key, members[key][1], members[key][0]))

sal_dep[members[key][1]] = members[key][0]

max_val = max(sal_dep)

max_name = sal_dep[max_val]

print('工资最高的部门是:{},该部门工资是:{}'.format(max_name,max_val))

系统解析:

字典members里的value是个列表,所以需要用到列表的索引

对着字典members遍历,按照要求显示每个员工的工资和部门信息,另外还要取得工资和部门的名称存入字典sal_dep

为了统计工资最高的部门的工资,需要字典sal_dep来保存这两个信息

并且这个字典的key应该是工资数

用max函数对字典sal_dep的key进行求最大值的计算,并将最大值赋给变量max_val

再从字典里,取出key为max_val的value赋给变量max_name

最后按照要求显示结果

4、

第四题图

系统解答:

import jieba # 导入jieba中文分词库

dk = {} # 定义dk字典变量 type(dk):

#使用with后不管with中的代码出现什么错误,都会进行对当前对象进行清理工作。

#例如file的file.close()方法,无论with中出现任何错误,都会执行file.close()方法

#以指定utf-8编码只读方式打开data.txt文件,文件句柄命名为f

with open('data.txt','r',encoding = "utf-8") as f:

sl = f.readlines()

#print(type(f)) f是文件句柄的类型

#print(type(sl)) sl是一个列表,包含了文件中每一行内容

#print(type(sl[0])) sl[0]是列表sl中第一个元素,是文件中第一行所有内容

for s in sl: #循环读取列表元素

k =jieba.lcut(s, cut_all = True)

#对每个s,使用jieba.lcut函数以全模式方式返回一个列表(由词语组成)

for wo in k: #对每个词语进行筛选

if len(wo) == 2: #如果词语的长度为2,进行统计

dk[wo] = dk.get(wo,0) + 1

#逐步构建统计字典,形式如{"大学":1,"设计":2,...},备注,这里的1、2是逐渐变化中

dp = list(dk.items()) #转换为列表,列表中元素为元组。

dp.sort(key= lambda x:int(x[1]), reverse = True)

for i in range(10): #输出排序后的内容

print("{}:{}".format(dp[i][0],dp[i][1]))

5、输入一个正整数(范围为65-96),请输出对应的Unicode字符。

# -*- coding:utf-8 -*-

x = eval(input()) #输入为"65",由eval函数转变为数值65

print("{:c}".format(x)) #输出Unicode编码为65,对应的字符为"A"

# 如果输入的是"a",会出现如下错误提示:

# File "", line 1, in

# NameError: name 'a' is not defined

# 原因:eval函数只能识别数字字符串,对于输入"a",只能被识别为一个变量名称为a,

# a 这个变量是不存在的,从而出现错误。

# 如果要避免这样的意外出现,请尝试使用try-catch语句完善代码。

# 本题目的考察点在于format函数的格式输出规则。

6、获得用户输入的一个字符串,将字符串逆序输出,同时紧接着输出字符串的个数

我的解答:

s = input()

print(s.reverse(),end="")

print(len(s))

我的是错的,因为reverse()是对列表进行反转,而不是字符串,所以正确解答应该是:

# -*- coding:utf-8 -*-

'''

This is a python123.io file.

'''

s = input() #从键盘获取输入,返回字符串

print(s[::-1],end="") #字符串逆序输出,详见代码后说明

print(len(s)) #输出字符串长度

7、以123为随机数种子,随机生成10个在1(含)到999(含)之间的随机整数,每个随机数后跟随一个逗号进行分隔,屏幕输出这10个随机数。

import random

random.seed(123)

for i in range(10):

print(random.randint(1,999), end=",")

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值