• Python 第五次实验


    【1】 (程序设计)编写程序,将二维列表数据写入 CSV文件(命名为“out.csv”),用逗号隔开。二维列表如下:[['Name','Age','Gender'],
    ['Bob','10','male'],
    ['Ala','12','female'],
    ['Cindy','12','female'],
    ['Dan','13','male']]
    注意CSV文件的格式

    lst=[['Name','Age','Gender'],['Bob','10','male'],['Ala','12','female'],['Cindy','12','female'],['Dan','13','male']]
    fo=open("out.csv","w")
    for i in lst:
        for j in i:
            fo.write(j)
            fo.write(',')
        fo.write("\n")
    fo.close()
    

    【2】 (程序设计)编写程序,按行读取文件中的字符串,输出其中长度最长的那一行字符串。

    fo=open('in.txt','r')
    str=fo.read()
    lst=str.split('\n')
    ans=''
    for i in lst:
        if len(ans)<len(i):
            ans=i
    print(ans)
    

    【3】 (程序设计)编写程序,读取附件data.CSV文件中的数据,并进行如下格式转换:
    (1)按行进行倒序排列;(2)每行数据倒序排列;(3)使用分号(;)代替逗号(,)分割数据,无空格;按照上述要求转换后将数据输出。
    例如:data.csv文件内容如下:
    1,2,3
    4,5,6
    7,8,9
    程序输出:
    9;8;7
    6;5;4
    3;2;1
      ★【附件下载】★

    fo=open('data.csv','r')
    str=fo.read()
    last_lst=str.split('\n')
    last_lst.reverse()
    for i in last_lst:
        j=i.split(',')
        j.reverse()
        for k in range(len(j)):
            print(j[k],end='')
            if k+1!=len(j):
                print(';',end='')
            else:
                print()
    

    【4】 (程序设计)编写程序,计算1到100的阶乘,把阶乘结果保存到文本文件“阶乘.txt”。

    fo=open('阶乘.txt','w')
    ans=1
    for i in range(1,101):
        ans=ans*i
        fo.write('{}!={}\n'.format(i,ans))
    fo.close()
    

    【5】 (程序设计)下载附件,编写程序找出“整数.txt”中素数(质数)的个数,并求出这些素数(质数)的和。数据之间用逗号隔开,但可能有连续的空格,程序中要注意判断。
      ★【附件下载】★

    prime=[1]*10002
    prime[0]=0
    prime[1]=0
    for i in range(2,10002):
        for j in range(i*2,10002,i):
            prime[j]=0
    
    fo=open('整数.txt','r')
    str=fo.read()
    lst=str.split('\n')
    
    prime_sum=0
    prime_num=0
    
    for line in lst:
        line_lst=line.split(',')
        for i in line_lst:
            try:
                key=int(i)
                if prime[key]==1:
                    prime_num=prime_num+1
                    prime_sum=prime_sum+key
            except:
                None
    
    print(prime_num,prime_sum)
    

    【6】 (程序设计)下载附件,“整数.txt”文件每行有三个整数,统计该批整数中,有多少行的整数可以组成一个直角三角形(注意有负数)。下图红线标示的两行数可以组成直角三角形:2525=2424+77,55=33+44。要求输出满足条件的所有整数。

    fo=open('整数.txt','r')
    str=fo.read()
    line=str.split('\n')
    num=[0]*3
    ans=0
    
    for i in line:
        try:
            num_str=i.split(',')
            num[0]=int(num_str[0]);
            num[1]=int(num_str[1]);
            num[2]=int(num_str[2]);
            if(num[0]<=0 or num[1]<=0 or num[2]<=0):
                continue
            num.sort()
            if num[0]**2+num[1]**2==num[2]**2:
                print(i)
                ans=ans+1
        except:
            None
    print('共有{}组数据可以构成直角三角形'.format(ans))
    

    【7】 (程序设计)下载附件,每行有3个整数(有负数)。编写程序,读入所有数据,如果某行的三个整数能构成三角形则计算其面积,输出所有面积的最大值(保留两位小数)及三个边长的值。若三角形三边长分别为a,b,c,计算p=(a+b+c)/2,则该三角形的面积的平方=p(p-a)(p-b)*(p-c)。

    fo=open('整数.txt','r')
    str=fo.read()
    line=str.split('\n')
    num=[0]*3
    maxs=0
    
    for i in line:
        try:
            num_str=i.split(',')
            a=int(num_str[0]);
            b=int(num_str[1]);
            c=int(num_str[2]);
            if(a<=0 or b<=0 or c<=0):
                continue
            p=(a+b+c)/2
            S=(p*(p-a)*(p-b)*(p-c))**0.5
            if S>maxs:
                maxs=S
                ans=i
        except:
            None
    

    print('最大面积为{},边长分别是{}'.format(maxs,ans))

  • 相关阅读:
    Bash Shell 快捷键
    vector-swap
    vector-swap
    vector-size
    Android网络篇
    应用 Valgrind 发现 Linux 程序的内存问题
    树莓派初学者?先做做这十个项目吧
    树莓派 (为学习计算机编程教育设计的一种微型电脑)
    微软windows10 IOT支持PI3之后,树莓派3更是将获得Android官方原生支持
    Linux基金会宣布JS Foundation基金会成立 前身为jQuery团队
  • 原文地址:https://www.cnblogs.com/alphainf/p/16153125.html
Copyright © 2020-2023  润新知