1 从键盘输入 两数, 求其小公倍数和最大公因子。
2 分别以文本和二进制方式 写入 1,2,3,4,5 这些数据,并读出显示, 最后求取这些数据的平均值。
3 给定一矩阵[ 1.0 2.0 3.0 4.0
5.0 6.0 7.0 8.0 ]
数据,将此矩阵写入文件,然后分别按行列读出并显示。
4 将全班同学的数据由excel 文件读出,写入csv 文件中。 全班同学的数据由班长汇集,有学号,姓名,性别,年龄,籍贯。
5 将全班同学数据写入 sqlite3 数据库, 并 按性别, 年龄和 籍贯进行统计显示。
import numpy as np
import pandas as pd
import csv
import os
import sqlite3
def fun1():
print("第一题")
num1=eval(input("请输入1个整数:"))
num2=eval(input("请输入1个整数:"))
if num1<num2:
t=num1
num1=num2
num2=t
t=gcd(num1,num2)
print("最大公约数为:{}".format(t)) #输出
print("最小公倍数为:{}".format(num1*num2/t))
def gcd(a,b): #辗转相除法求最大公因数
return a if b==0 else gcd(b,a%b)
def fun2():
print("第二题")
li1=['1','2','3','4','5']
li2=['001','010','011','100','101']
sum=0
for i in li1: #遍历求和
sum+=int(i)
t=sum/len(li1)
print("文本输入的平均值为:{}".format(t))
sum=0
for i in li2:
t=0
for j in range(len(i)): #二进制计算十进制
t+=int(i[-1-j])*pow(2,j)
sum+=t #求和
print("二进制输入的平均值为:{}".format(sum/len(li2)))
def fun3():
li=np.array([[1.0,2.0,3.0,4.0],[5.0,6.0,7.0,8.0]]) #创建矩阵
fo=open("suger.txt",'w+')
for i in li: #读取每行
for j in range(len(i)): #遍历每个元素
fo.write(str(i[j])) #写入文件
if j<len(i)-1: #不是最后一个以空格分开
fo.write(' ')
else: #矩阵一行结束,换行
fo.write('\n')
fo.close()
fo=open("suger.txt",'r')
for data in fo:
print(data,end='') #输出每行,因为写入的时候有换行,所以输出不要换行,以end=‘’结尾
fo.close
def openFile():
path =os.getcwd()
filePath = path+'\.vscode\python-班级同学信息.xlsx'
#数据获取与处理
data = pd.read_excel(filePath)
dataList = np.array(data).tolist()
return dataList
def fun4():
dataList=openFile()
# print(dataList)
fo=open("班级同学信息.csv",'w+',encoding='utf-8',newline="")
cw = csv.writer(fo)
for data in dataList:
cw.writerow(data)
fo.close
def fun5():
conn = sqlite3.connect('python.db') # 建立数据库连接
c = conn.cursor() # 创建游标
print("连接成功")
c.execute('''drop table student''') # 执行 sql 语句创建表格
c.execute('''create table student
(ID int primary key NOT NULL,
NAME varchar(10) NOT NULL,
SEX varchar(2) NOT NULL,
Age int NOT NULL,
Province varchar(10) NOT NULL);''')
print("表创建成功")
conn.commit() # 提交事务
dataList=openFile()
# 插入数据
dic=dict()
for data in dataList:
if data[2] in dic:
dic[data[2]]+=1
else:
dic[data[2]]=1
if data[3] in dic:
dic[data[3]]+=1
else:
dic[data[3]]=1
if data[4] in dic:
dic[data[4]]+=1
else:
dic[data[4]]=1
c.execute("insert into student values ({},'{}','{}',{},'{}')".format(data[0],data[1],data[2],data[3],data[4]))
print("插入成功")
cursor = c.execute("select ID,NAME,Sex,Age,Province from student order by Sex,Age,Province ") # 执行语句搜索结果
for row in cursor: # 输出查询结果
print(row[0], row[1], row[2],row[3],row[4])
print("查询成功")
print(dic)
conn.close() # 关闭连接
if __name__=='__main__':
fun1()
fun2()
fun3()
fun4()
fun5()