1、输出由英文字母大小写或数字组成的长度为30且不重复的随机字符串。

提示:利用random.sample

////////////////////////////////////////////////////////////////////////

参考答案:

import string

x = string.ascii_letters + string.digits

import random

print(''.join(random.sample(x, 30)))

////////////////////////////////////////////////////////////////////////

2、列表推导式。使用列表推导式生成列表,其元素为100以内所有能被3整除的数。

////////////////////////////////////////////////////////////////////////

参考答案:

x=[i for i in range(1,100) if i%3==0]

print(x)

////////////////////////////////////////////////////////////////////////

3、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。

////////////////////////////////////////////////////////////////////////

参考答案:

import random

x = [random.randint(0,100) for i in range(20)]

print(x)

x[::2] = sorted(x[::2], reverse=True)

print(x)

////////////////////////////////////////////////////////////////////////

4、字典练习。输入字符串,输出字符串中次数最多的字母及其出现次数,如果有多个字母出现次数一样,则依次输出字母及其出现次数。

////////////////////////////////////////////////////////////////////////

参考答案:

s = input()

d = {}

for c in s:

    d[c] =d.get(c, 0) + 1

max_key = max(d, key=lambda k: d[k])

max_value=d[max_key]

d2 = {k: v for k, v in d.items() if v==max_value}

print(d2)

////////////////////////////////////////////////////////////////////////

5、接收任意多个整数并输出最大值及求和。编写函数demo,demo可以接收任意多个整数并输出其中的最大值和所有整数之和。

////////////////////////////////////////////////////////////////////////

参考答案:

def demo(*v):

    print(max(v))

    print(sum(v))

v=eval(input())

demo(*v)

////////////////////////////////////////////////////////////////////////

6、数据可视化。随机生成1000个[0,1]区间内的数字作为X,再随机生成1000个[0,1]区间内的数字作为Y,将1000个X、Y坐标绘制成散点图。

////////////////////////////////////////////////////////////////////////

参考答案:

import numpy as np

import matplotlib.pylab as pl

x=np.random.random(1000)

y=np.random.random(1000)

pl.scatter(x,y,s=x500,c=u’r’,marker=u’’)

////////////////////////////////////////////////////////////////////////

7、使用 pandas 读取文件 data.csv 中的数据,创建 DataFrame 对象,并删除其中所有缺失值。然后,按月份进行统计,使用 matplotlib 绘制柱状图显示每个月份的销量。

////////////////////////////////////////////////////////////////////////

参考答案:

import pandas as pd

import matplotlib.pyplot as plt

# 读取数据,丢弃缺失值

df = pd.read_csv('data.csv', encoding='cp936')

df = df.dropna()

# 按月统计

df1 = df[:]

df1['月'] = df1['日期'].map(lambda x: x[:x.rindex('-')])

df1 = df1.groupby(by='月', as_index=False).sum()

#生成柱状图

plt.figure(figsize=(8,4))

plt.bar(df1['月'],df1['销量'])

plt.show()

////////////////////////////////////////////////////////////////////////

8、斐波那契数列。有一数列 1,1,2,3,5,8,13,21,34 ……。求数值n项的值?

提示:需要考虑算法的复杂度、扩展性。

////////////////////////////////////////////////////////////////////////

参考答案:

def container(func):

    cache={}

    def wrap(*args):

       res=cache.get(args)

       if not res:

           res=cache[args]=func(*args)

       return res

    return wrap

@container #用Python里面的装饰器对缓存算法封装

def fib(n):

     if n<=1:

         return n

     else:

         return fib(n-1) + fib(n-2)

print([fib(n) for n in range(1,50)])

////////////////////////////////////////////////////////////////////////

9、创建Student类。创建Student类,要求满足以下条件:

(1)创建构造方法,初始化学生姓名name,平时成绩reg_grade(满分100)和期末成绩end_grade(满分100);

(2)创建实例方法,计算并输出总成绩:学生总成绩=平时成绩*0.3+期末成绩*0.7。

////////////////////////////////////////////////////////////////////////

参考答案:

class Student:

    def __init__(self, name,reg_grade=0, end_grade=0):

        self.__name=name

        self.__reg_grade=reg_grade

        self.__end_grade = end_grade

    def calculate_grade(self):

        return self.__reg_grade*0.3+self.__end_grade*0.7

name = input() 

reg_grade = int(input()) 

end_grade = int(input()) 

stu= Student(name, reg_grade, end_grade) 

grade= stu.calculate_grade()

print(f"{name},您的总成绩是{grade}") 

////////////////////////////////////////////////////////////////////////

10、文件内容读取。假设当前目录下有一个英文文本文件(文件名test.txt)。编写程序读取其内容,并将其中的大写字母变为小写字母,小写字母变为大写字母。

////////////////////////////////////////////////////////////////////////

参考答案:

from pathlib import Path

path = Path('test.txt')

contents = path.read_text()

print(contents.swapcase())

////////////////////////////////////////////////////////////////////////

11、KNN算法。

X_train = [[1, 180, 85], [1, 180, 86], [1, 180, 90], [1, 180, 100], [1, 185, 120], [1, 175, 80], [1, 175, 60], [1, 170, 60], [1, 175, 90], [1, 175, 100], [1, 185, 90], [1, 185, 80]]

y_train = ['稍胖', '稍胖', '稍胖', '过胖','太胖', '正常', '偏瘦', '正常', '过胖', '太胖', '正常', '偏瘦']

X_test = [[1, 180, 70], [1, 160, 90], [1, 170, 85]]

假定已经给出了如上的训练数据X_train、y_train,请使用sklearn的KNN算法(k选择3),对给定的测试数据X_test进行分类。

运行结果如下所示:

             ['偏瘦' '太胖' '正常']

////////////////////////////////////////////////////////////////////////

参考答案:

X_train = [[1, 180, 85], [1, 180, 86], [1, 180, 90], [1, 180, 100],

             [1, 185, 120], [1, 175, 80], [1, 175, 60], [1, 170, 60],

             [1, 175, 90], [1, 175, 100], [1, 185, 90], [1, 185, 80]]

y_train = ['稍胖', '稍胖', '稍胖', '过胖','太胖', '正常', '偏瘦', '正常', '过胖', '太胖', '正常', '偏瘦']

X_test = [[1, 180, 70], [1, 160, 90], [1, 170, 85]]

#导入模型

from sklearn.neighbors import KNeighborsClassifier

#创建实例

knn = KNeighborsClassifier(3)

#模型训练

knn.fit(X_train, y_train)

#模型预测

result=knn.predict(X_test)

print(result)

////////////////////////////////////////////////////////////////////////

12、朴素贝叶斯。朴素贝叶斯数据集如表所示。使用朴素贝叶斯算法预测(无风,不潮湿,多云,闷热)的情况是否下雨。

////////////////////////////////////////////////////////////////////////

参考答案:

import pandas as pd

data=pd.read_excel('朴素贝叶斯数据集.xlsx')

data=data.replace(['是','否'],[1,0])        

data=data.drop(['日期'],axis=1)

x=data.values[:,:-1]

y=data.values[:,-1:]

#step1 调用伯努利朴素贝叶斯模型

from sklearn.naive_bayes import BernoulliNB

#step2 创建模型实例

bnb = BernoulliNB()

#step3 模型训练

bnb.fit(x,y)

#step4 模型预测

day_pred=[[0,0,1,0]] #预测数据

y_pred = bnb.predict(day_pred)

print('预测结果为:',y_pred)

////////////////////////////////////////////////////////////////////////

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐