python大作业附操作题(暑假实践课点宽科技布置的作业,持续更新)附完整代码文件
一、选择题
-
下面那个选项定义的不是字符串类型:
A. a=[hello]
B. a=”hello”
C. a=’hello’
D. a=”””hello”””
答案:A -
print (Str[0])和print (Str[0:-1])分别会得到字符串中哪些元素?
A. 第一个字符和最后一个字符
B. 第一个字符和第一个到最后一个字符
C. 第一个字符和第一个到倒数第二个字符
D. 第二个字符和第一个到倒数第二个字符
答案:C
补充:str[0:-1]为切片,意思是从前面开始截取到后面-1为止,所以输出第一个到倒数第二个的所有字符 -
假设我们定义变量t=[‘a’,‘b’,‘c’,‘d’,'e’],然后再令t[0]=’f’,最后打印输出列表t我们会得到什么输出结果?
A. [‘f’,‘a’,‘b’,‘c’,‘d’,'e’]
B. [‘a’,‘f’,‘b’,‘c’,‘d’,'e’]
C. [‘f’,‘b’,‘c’,‘d’,'e’]
D. [‘f’,‘a’,‘b’,‘c’,‘d’]
答案:C -
假设我们定义变量t=[‘a’,‘b’,‘d’,'e’],然后再令t.insert(2,’c’),最后打印输出列表t我们会得到什么输出结果?
A. [‘a’,‘b’,‘d’,'c’,'e’]
B. [‘a’,‘c’,‘b’,'d’,'e’]
C. [‘a’,‘b’,‘c’,'d’,'e’]
D. 以上都不是
答案:B -
下面关于数据类型说法不正确的是:
A. 浮点型可以转换为整型和字符串
B. 整型和字符串类型都可以转换为列表类型
C. 列表类型,元组类型和集合类型数据不可以转换为字符串类型
D. 以上都正确
答案:C -
下面关于条件语句的说法正确的是:
A. ”else”可以单独出现
B. ”elif”可以单独出现
C. ”else”是”if”语句的可选项
D. 以上都正确
答案:C -
下面关于pass语句的说法正确的是:
A. pass语句的作用与break语句相同
B. pass语句的作用与continue语句相同
C. pass是空语句,是为了保持程序结构的完整性。
D. pass语句不做任何事情,一般用作占位语句。
答案:D -
下面关于函数定义的说法错误的是:
A. 通过固定语法def 声明这是一个函数
B. 函数名称定义的基本规则是与英文开头,首字不能为数字。由英文、数字以及下划线组成
C. 函数的返回对象不可以为空
D. Python提供三种代码注释方法,即单行注释用 # 开头,多行注释用三个单引号或三个双引号。
答案:D -
下面的Python代码块输出的结果是( )
def add(x,y):
print ("x+y=",x+y)
add(1,2,3)
A. 3
B. 5
C. 4
D. 报错
答案:D
10. 假如有a和b两个数组,以下哪一代码表示水平方向连接数组a和b?
A. print (np.concatenate((a,b)))
B. print (np.concatenate((a,b),axis = 1))
C. print (np.hstack((a,b)))
D. print (np.vstack((a,b)))
答案:C
11. 构建一个数组x=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]]),以下哪一代码表示获取第三行第二列的元素:
A. print(x[3,2])
B. print(x[2,3])
C. print(x[2,1])
D. print(x[1,2])
答案:C
12. 假设a为数组,以下哪一代码表示的是数组a向下取整?
A. print (numpy.around(a))
B. print (numpy.floor(a))
C. print (numpy.ceil(a))
D. print (numpy.reciprocal(a))
答案:B
13. pandas库提供哪两种删除列的方法?
A. drop和del
B. drop和pop
C. del和pop
D. pandas库无法删除列
答案:A
14. 假如我们有名为df的DataFrame,但是df中的标签不是按顺序排列的,如果我们想要令df的标签按降序进行排列,我们该用以下哪一代码?
A. sorted_df= df.sort_index()
B. sorted_df= df.sort_index(ascending=False)
C. sorted_df= df.sort_index(ascending=True)
D. sorted_df= df.reindex()
答案:B
15. 假设df为有缺失值的一个DataFrame,如果想用前一行数据填充缺失值,我们需要用以下哪一代码?
A. df.fillna(method=‘pad’)
B. df.fillna(method=‘backfill’)
C. df.fillna(0)
D. 以上都不是
答案:D
16. 下面关于merge函数中外连接和内连接定义正确的是?
A. 外连接不管是左边存在,还是右边存在,合并后都需要保留。而内连接合并后只保留两边都存在的数据。
B. 内连接不管是左边存在,还是右边存在,合并后都需要保留。而外连接将左右两只保留两边都存在的数据。
C. 内连接合并后不保留存在缺失值的数据,外连接合并后保留存在缺失值的数据。
D. 内连接和外连接合并后,都只保留两边存在的数据。
答案:B
二、操作题
- 请用Python代码实现求1000-2000以内同时能被7,8整除的数。
num_count=0
for i in range(1000,2000):
if i%7 == 0 and i%8 == 0:
num_count +=1
print(num_count)
-
请用Python代码求1-2+3-4+5 … 99的所有数的和。
代码稍后! -
数据集data是A股市场茅台股票从2021年1月1日到2021年6月20日的数据集,数据集中的数据包括时间time,股票代码code,开盘价open,最高价high,最低价low,收盘价close,交易量volume,交易金额amount以及持仓量open_interest。
(1)在Juypter中导入数据集data,并打印查看data。
步骤:
a.打开Juypter note,点击上传
b.选择data.csv文件
c.点击上传
d.查看并打印
import pandas as pd
df = pd.read_csv('data.csv')
df
e.结果:
(2)查看data的数据形状。
import csv
import matplotlib.pyplot as plt
filename = 'data.csv'
with open(filename,'r') as f:
reader = csv.reader(f) # 生成阅读器,f对象传入
header_row = next(reader) # 查看文件第一行,reader是可迭代对象
highs = []
for row in reader:
high = float(row[4])#我这里选择了high列数据进行绘图,可以选择其他的open或者low、close等
highs.append(high)
# 设置图片大小
fig = plt.figure(dpi=128,figsize=(10,6))
plt.plot(highs, c='red',linewidth=1) # 设置颜色、线条粗细
# 设置图片格式
plt.title
plt.xlabel
plt.ylabel
plt.show()
结果:
(3)对数据框data的列表头close进行重新命名为price。
import csv
import pandas as pd
import numpy as np
df=pd.read_csv('data.csv',names=['', 'time', 'code', 'open', 'high', 'low', 'price', 'volume', 'amount', 'open_interest'])
df
结果:
(4)删除持仓量这一列。
import csv
import pandas as pd
df = pd.read_csv('data.csv')
#删除指定列
df.drop(columns=['open_interest'])
(5)查看data的前五行数据。
import csv
import pandas as pd
df = pd.read_csv('data.csv')
df = pd.read_csv('data.csv',nrows = 5)
df
结果:
(6)使得数据框data按收盘价从小到大的顺序进行排序。
import csv
import pandas as pd
df = pd.read_csv('data.csv')
df.sort_values(by=['close'], ascending=True, inplace=True)
df
结果:
(7)计算茅台在这段时间内,开盘价和收盘价的最大差值。
import csv
import pandas as pd
df = pd.read_csv('data.csv')
# 1. 收盘价-开盘价
df["close-open"] = df["close"] - df["open"]
df.sort_values(by=['close-open'], ascending=True, inplace=True) #排序
print(df.iloc[-1,10])#取值
结果:
(8) 使用describe函数对数据data进行基础的描述性统计分析,并进行转置。
import csv
import pandas as pd
# 将数据集读入到pandas数据框中
df = pd.read_csv('data.csv', sep=',', header=0)
df.columns = df.columns.str.replace(' ', '_')
#绘图我就不做了
df.describe()# 显示所有变量的描述性统计量
结果:
- 数据集data是A股市场茅台股票从2021年1月1日到2021年6月20日的数据集,数据集data1是A股市场五粮液股票从2021年1月1日到2021年6月22日的数据集,数据集中的数据包括时间time,股票代码code,开盘价open,最高价high,最低价low,收盘价close,交易量volume,交易金额amount以及持仓量open_interest。
(1) 在Juypter中导入数据集data和data1,并打印查看data。
步骤:
a.打开Juypter note
b.点击upload
c.选择data.csv和data1.csv
d.点击上传
e.打印查看data
import csv
import pandas as pd
df = pd.read_csv('data.csv')
df
结果:
(2) 请用代码实现将数据集data和data1以时间为关联键按外连接和内连接。
import csv
import pandas as pd
data = pd.read_csv('data.csv')
data1 = pd.read_csv('data1.csv')
connect = pd.merge(data, data1, on='time', how='outer')
print('外连接outer:\n',connect)
connect = pd.merge(data, data1, on='time', how='inner')
print('内连接inner:\n',connect)
结果:
外连接:
内连接:
上面的图有点不好看,美化之后如下:
外连接:
内连接:
(3) 分别检查连接后的数据集有无缺失值。
import csv
import pandas as pd
data = pd.read_csv('data.csv')
data1 = pd.read_csv('data1.csv')
connect_outer = pd.merge(data, data1, on='time', how='outer')
connect_inner = pd.merge(data, data1, on='time', how='inner')
#缺失值检查
print('外连接缺失值检查:\n',connect_outer.isnull())
print('内连接缺失值检查:\n',connect_inner.isnull())
结果:
外连接缺失值:
内连接缺失值:
(4) 如内连接或外连接后有缺失值,使用向前填充的方法进行填充缺失值。(持仓量除外)
import csv
import pandas as pd
data = pd.read_csv('data.csv')
data1 = pd.read_csv('data1.csv')
connect_outer = pd.merge(data, data1, on='time', how='outer')
connect_inner = pd.merge(data, data1, on='time', how='inner')
#外连接缺失值填充
print('原始数据:\n',connect_outer)
del_connect_outer = connect_outer.fillna(method='pad')
print('处理后数据:\n',del_connect_outer)
#内连接缺失值填充
print('原始数据:\n',connect_inner)
del_connect_inner = connect_inner.fillna(method='pad')
print('处理后数据:\n',del_connect_inner)
结果:
外连接原始数据:
处理后的数据:
内连接原始数据:
处理后数据:
美化后:
外连接原始数据:
外连接处理后:
内连接原始数据:
内连接处理后:
补充:
1.连接函数merge()
2.检查缺失值isnull()
3.缺失值填充
题目可能出现有错误的地方,欢迎大家评论指出!!!
另外,如有其他问题也可以私信我,我看到回及时回复的!!!
注意:by the way!想学的同学认真跟着操作一遍,看一下代码,也是能学会的
最后:码答案不容易,关注+点赞+收藏一下吧!
附:
完整代码链接:https://pan.baidu.com/s/1Q2JC8_Ioci21Z1jOwiYBOA
提取码:5fxv