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=",")