Python简答题期末复习看这一篇就够了

简答编程复习题参考

randrange是前闭后开,randint是前闭后闭

  1. 请写出一段Python代码实现删除一个list里面的重复元素

[1,2,3,3,4,4,5,5,5]
list(set(A))
print(A)

  1. 利用内置函数chr(),ord()以及random模块写一个简单随机4位验证码

import random
tmp ""
for in range(4):
    random.randrange(0,2)
    if == 0:
        tmp += chr(random.randrange(65,91))
    else:
        tmp += str(random.randrange(0,10))
print(tmp)

  1. 写代码
  1. 实现用户输入用户名和密码,当用户名为 seven且密码为123时,显示登陆成功,否则登陆失败,失败时允许重复输入三次

error_num 0
while True:
    username input("请输入用户名:")
    password input("请输入密码:")
    if username == 'seven' and password == '123':
        print("登录成功")
        break
    else:
        print("登录失败")
        error_num += 1
        if error_num == 3:
            print("已输错三次")
            exit()
        else:
            continue

  1. 使用while循环实现输出2-3+4-5+6.....+100的和

2
sum 0
while(a<=100):
    if a%==0:
        sum += a
    else:
        sum -= a
    a+= 1
print(sum)

12、写代码,有如下列表,按照要求实现每一个功能(所有练习题同样适用于元组)

li = ['alex','eric','rain']    
a.计算列表长度并输出
b.列表中追加元素"seven",并输出添加后的列表
c.请在列表的第1个位置插入元素 "Tony",并输出添加后的列表
d.请修改列表第2个位置的元素为 "Kelly",并输出修改后的列表
e.请删除列表中的元素"eric",并输出修改后的列表
f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
g.请删除列表中的第3个元素,并输出删除元素后的列表
h.请删除列表中的第2至4个元素,并输出删除元素后的列表
i.请将列表所有的元素反转,并输出反转后的列表
j.请使用for、len、range 输出列表的索引
k.请使用enumrate输出列表元素和序号(序号从 100 开始)
l.请使用for循环输出列表的所有元素

li ['alex','eric','rain']
# a.计算列表长度并输出
print(len(li))
# b.列表中追加元素"seven",并输出添加后的列表
li.append("seven")
print(li)
# c.请在列表的第1个位置插入元素 "Tony",并输出添加后的列表
li.insert(0,"Tony")
print(li)
# d.请修改列表第2个位置的元素为 "Kelly",并输出修改后的列表
li[1"Kelly"
print(li)
# e.请删除列表中的元素"eric",并输出修改后的列表
li.remove("eric")
print(li)
# f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
tmp li.pop(1)
print(tmp)
print(li)
# g.请删除列表中的第3个元素,并输出删除元素后的列表
li.pop(2)
print(li)
# h.请删除列表中的第2至4个元素,并输出删除元素后的列表
li li[0:1li[4:]
print(li)
# i.请将列表所有的元素反转,并输出反转后的列表
li.reverse()
print(li)
# j.请使用for、len、range 输出列表的索引
for in range(len(li)):
    print(i)
# k.请使用enumrate输出列表元素和序号(序号从 100 开始)
for indexval in enumerate(li100):
    print(index," ",val)
# l.请使用for循环输出列表的所有元素
for in li:
    print(i)

  1. 字典
    dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
    a. 请循环输出所有的 key
    b. 请循环输出所有的 value
    c. 请循环输出所有的 key 和 value
    d. 请在字典中添加一个键值对, "k4":"v4",输出添加后的字典
    e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
    f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
    g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典

 

dic={'k1':"v1","k2":"v2","k3":[11,22,33]}
# a. 请循环输出所有的 key
for in dic:
    print(i)
# b. 请循环输出所有的 value
for in dic:
    print(dic[i])
# c. 请循环输出所有的 key 和 value
for in dic:
    print("key:",i,"value:",dic[i])
# d. 请在字典中添加一个键值对, "k4":"v4",输出添加后的字典
dic.setdefault("k4","v4")
print(dic)
# e. 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
dic["k1""alex"
print(dic)
# f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
dic["k3"].append(44)
print(dic)
# g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典
dic["k3"].insert(0,18)
print(dic)

  1. 转换
    d. 将列表 li=["alex","seven"] 转换成字典且字典的 key 按照 10 开始向后递增

li ["alex""seven"]
dict {}
for iname in enumerate(li,10):
    dict[iname
print(dict)

  1. 字典如何删除键和合并两个字典

{"k1":"v1","k2":"v2"}
{"k3":"v3"}
a.pop("k1")
a.update(b)
print(a)

25、  map()函数第一个参数是fun,第二个参数是一般是list,第三个参数可以写list,也可以不写,根据需求

[1,2,3,4,5]
def fn(x):
    return x**2
res map(fn,a)
res [for in res if 10]
print(res)

  1. 中国
    ,用正则匹配出标签里面的内容(“中国”),其中class的类名是不确定的

import re
str '

中国
'
res re.findall(r'
(.*?)
'
,str)
print(res)

 

 

24、字典根据键从小到大排序dict={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}

dict={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
list sorted(dict.items(),key=lambda i:i[0],reverse=False)
print("按键排序后的列表:",list)
new_dict {}
for in list:
    new_dict[i[0]] i[1]
print("新字典:",new_dict)

26、字符串a = "not 404 found 张三 99 深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三  深圳"

import re
"not 404 found 张三 99 深圳"
list a.split(" ")
res re.findall("\d+|[a-zA-Z]+",a)
# print(res)
for in res:
    if in list:
        list.remove(i)
print(list)
new_str " ".join(list)
print(new_str)

  1. 列表推导式求列表所有奇数并构造新列表,a =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

=  [12345678910]
res [for in if(i%2==1)]
print(res)

  1. 实现字符串反转 输入str="string"输出'gnirts'

str str(input())
tmp list(str)
tmp.reverse()
re_str "".join(tmp)
print(re_str)

或者

str str(input())
re_str str[::-1]
print(re_str)

 

6、一行代码实现对列表a中的偶数位置的元素进行加3后求和

sums=sum(map(lambda x:x+3,list[1::2]))

7、List = [-2, 1, 3, -6],如何实现以绝对值大小从小到大将 List 中内容排序

List [-213-6]
List.sort(key=abs)
print(List)

8、合并两个list:

[1,2,3]
[4,5,6]
a+b
print(c)

9、什么是lambda函数?它有什么好处?另外python在函数编程方面提供了些什么函数和语法?

lambda是Python中的匿名函数。它语法简单,简化代码,不会产生命名冲突,污染命名空间。Python提供了map,reduce,filter等函数方法,提供了装饰器,闭包等语法

10、详细说说tuple、list、dict的用法,它们的特点

tuple 元祖,固定长度不可变的顺序容器,访问效率高,是和存储一些常量数据,可以作为字典的键使用

list 列表,是长度可变有序的数据存储容器,。可以通过下标索引取到相应的数据

dict 字典,长度可变的hash字典容器。存储的方式为键值对,可以通过相应的键获取相应的值,key支持多种类型

  1. list 对象 alist [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}], 请按 alist 中元素的age 由大到小排序;

alist.sort(key=lambda x:x['age'], reverse=True)

 

题目3: 设计一个函数,统计字符串中英文字母和数字各自出现的次数

def count_letter_number(string):
    letter_count 0
    digit_count 0
    for ch in string:
        if 'a' <= ch <= 'z' or 'A' <= ch <= 'Z':
            letter_count += 1
        elif '0' <= ch <= '9':
            digit_count += 1
    return letter_countdigit_count

 

题目5: 设计一个函数,计算字符串中所有数字序列的和

import re
def sum_num_seq(string):
    mylist re.findall('\d+',string)
    my_sum 0
    for num in mylist:
        my_sum += int(num)
    return my_sum

题目6:从一组单词库中,随机抽取一个单词,打乱顺序后输出,提示用户猜测正确单词,允许猜测最大次数为5次。单词库如下:

Wordlist=(‘pumpkin’,‘potato’,‘grape’,‘sandwich’,‘cupcake’,‘juice’,‘study’)

--------------------- 

import random
Wordlist ('pumpkin','potato','grape','sandwich','cupcake','juice','study')
word Wordlist[random.randrange(0,len(Wordlist))]
cor_word word
re_word ""
for in range(len(word)):
    tmp random.randrange(0,len(word))
    re_word += word[tmp]
    word word[0:tmp]+word[tmp+1:]
sum_number 0
print(re_word)
while(True):
    cai input()
    if cai == cor_word:
        print("恭喜你猜对了!")
        break
    else:
        print("很可惜,你猜错了!")
    sum_number += 1
    if sum_number >=5:
        print("你已经猜5次了!")
        break

题目7:购物车功能要求:
要求用户输入总资产,例如: 2000
显示购物车列表,计算购物车商品总金额,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。购物车列表如下:
carts=[
{"name":"电脑","price":1999,”num”:1},
{"name":"鼠标","price":10, ”num”:2},
{"name":"游艇","price":20, ”num”:1}

]。 

--------------------- 

carts=[
{"name":"电脑","price":1999,"num":1},
{"name":"鼠标","price":10"num":2},
{"name":"游艇","price":20"num":1}
]
sum 0
for in carts:
    sum += int(i["price"]) int(i["num"])
money int(input())
if money >= sum:
    print("购买成功!")
else:
    print("余额不足")

 

题目8:编程实现抽奖小程序:从学号1-60号的同学中随机抽取一位同学,再从1到4等奖中随机抽取一个奖项,奖品信息保存在元组中(1等奖笔记本,2等奖苹果手机,3等奖kindle,4等奖迷你音响)。最后输出:学号和中奖情况,例如:中奖号码:20号,奖品:2等奖 苹果手机一部。

--------------------- 

import random
reward ("1等奖 笔记本一部","2等奖 苹果手机一部","3等奖 kindle一部","4等奖 迷你音响一个")
sno random.randint(1,60)
reward_no random.randint(0,3)
print("中奖号码:",sno,"号,奖品:",reward[reward_no])

  1. Python被称为自带电池,请列举出至少五种电池(python模块)以及他们的作用

Numpy:高效数据处理

Pandas:数据探索和数据分析

Pygame:游戏开发

Matplotlib:作图,可视化分析

Request:网络爬虫,获取网页

Scipy:数值分析,矩阵计算

Json:json解码,转换

Time:时间访问、转换

Random:生成伪随机数

Os:操作系统接口

Sys:系统相关函数和参数

 

  1. 简述数据挖掘的过程主要由哪些。

1、确定目标

2、数据取样:随机取样、等距取样、分层取样、从起始顺序取样、分类抽样

3、数据探索:异常值分析、缺失值分析、相关性分析和周期分析

4、数据预处理:数据筛选、数据变量转换、缺失值处理、坏数据处理、数据标准化、主成分分析、属性选择、物选择规约

5、数据建模:model(分类、聚类、关联规则、时序模式或者智能推荐)

6、模型评价:找出最好的模型

  1. Python中常用的统计作图函数有哪些,分别什么作用。

plot() 绘制线性二维图,折线图

pie() 绘制饼图

hist() 绘制直方图

boxplot() 绘制箱形图 Pandas

  1. 数据探索的内容。

数据质量分析:缺失值,异常值分析,

数据特征分析:分布分析,对比分析,周期分析,贡献度分析,统计量分析,相关性分析

  1. 数据预处理包含哪些内容。

1-数据清洗

1)缺失值处理,三种方法:删除记录、数据插补、不处理

2)异常值处理四种方法:删除含有异常值的记录、视为缺失值、平均值修正、不处理。

2-数据集成

(1)   实体识别:同名异义、异名同义、单位不统一

(2)  冗余属性识别,可利用相关性分析对属性进行检测

3-数据变换

1)  简单函数变换:平方、开放、取对数、差分运算

2)  规范化:最小-最大规范化、零-均值规范化、小数定标规范化

3)  连续属性离散化: 等宽法、等频发、基于聚类分析方法 

4)  属性构造

5小波变换:信号分析手段,小波分析的理论和方法在信号处理、图像处理、语音处理、模式识别、量子物理等领域得到越来越广泛的应用

4-数据规约

    • 属性规约  ②数值规约
  1. Mvc设计模式广泛应用于web开发,简述mvc的工作原理

mvc是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。 

1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型 与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性 

2、视图(view) 用户与之交互的界面、在web中视图一般由jsp,html组成 

3、控制器(controller)接收来自界面的请求 并交给模型进行处理 在这个过程中控制器不做任何处理只是起到了一个连接的做用 

你可能感兴趣的:(本科课程资料,笔记)