李先生杂说 發表於 2022-4-16 15:56:00

Python 第五次实验

<font size="4">
<p>【1】 (程序设计)编写程序,将二维列表数据写入 CSV文件(命名为“out.csv”),用逗号隔开。二维列表如下:[['Name','Age','Gender'],<br>
['Bob','10','male'],<br>
['Ala','12','female'],<br>
['Cindy','12','female'],<br>
['Dan','13','male']]<br>
注意CSV文件的格式</p>
<pre><code class="language-python">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()
</code></pre>
<p>【2】 (程序设计)编写程序,按行读取文件中的字符串,输出其中长度最长的那一行字符串。</p>
<pre><code class="language-python">fo=open('in.txt','r')
str=fo.read()
lst=str.split('\n')
ans=''
for i in lst:
    if len(ans)&lt;len(i):
      ans=i
print(ans)
</code></pre>
<p>【3】 (程序设计)编写程序,读取附件data.CSV文件中的数据,并进行如下格式转换:<br>
(1)按行进行倒序排列;(2)每行数据倒序排列;(3)使用分号(;)代替逗号(,)分割数据,无空格;按照上述要求转换后将数据输出。<br>
例如:data.csv文件内容如下:<br>
1,2,3<br>
4,5,6<br>
7,8,9<br>
程序输出:<br>
9;8;7<br>
6;5;4<br>
3;2;1<br>
  ★【附件下载】★</p>
<pre><code class="language-python">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,end='')
      if k+1!=len(j):
            print(';',end='')
      else:
            print()
</code></pre>
<p>【4】 (程序设计)编写程序,计算1到100的阶乘,把阶乘结果保存到文本文件“阶乘.txt”。</p>
<pre><code class="language-python">fo=open('阶乘.txt','w')
ans=1
for i in range(1,101):
    ans=ans*i
    fo.write('{}!={}\n'.format(i,ans))
fo.close()
</code></pre>
<p>【5】 (程序设计)下载附件,编写程序找出“整数.txt”中素数(质数)的个数,并求出这些素数(质数)的和。数据之间用逗号隔开,但可能有连续的空格,程序中要注意判断。<br>
  ★【附件下载】★</p>
<pre><code class="language-python">prime=*10002
prime=0
prime=0
for i in range(2,10002):
    for j in range(i*2,10002,i):
      prime=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==1:
                prime_num=prime_num+1
                prime_sum=prime_sum+key
      except:
            None

print(prime_num,prime_sum)
</code></pre>
<p>【6】 (程序设计)下载附件,“整数.txt”文件每行有三个整数,统计该批整数中,有多少行的整数可以组成一个直角三角形(注意有负数)。下图红线标示的两行数可以组成直角三角形:25<em>25=24</em>24+7<em>7,5</em>5=3<em>3+4</em>4。要求输出满足条件的所有整数。</p>
<pre><code class="language-python">fo=open('整数.txt','r')
str=fo.read()
line=str.split('\n')
num=*3
ans=0

for i in line:
    try:
      num_str=i.split(',')
      num=int(num_str);
      num=int(num_str);
      num=int(num_str);
      if(num&lt;=0 or num&lt;=0 or num&lt;=0):
            continue
      num.sort()
      if num**2+num**2==num**2:
            print(i)
            ans=ans+1
    except:
      None
print('共有{}组数据可以构成直角三角形'.format(ans))
</code></pre>
<p>【7】 (程序设计)下载附件,每行有3个整数(有负数)。编写程序,读入所有数据,如果某行的三个整数能构成三角形则计算其面积,输出所有面积的最大值(保留两位小数)及三个边长的值。若三角形三边长分别为a,b,c,计算p=(a+b+c)/2,则该三角形的面积的平方=p<em>(p-a)</em>(p-b)*(p-c)。</p>
<pre><code class="language-python">fo=open('整数.txt','r')
str=fo.read()
line=str.split('\n')
num=*3
maxs=0

for i in line:
    try:
      num_str=i.split(',')
      a=int(num_str);
      b=int(num_str);
      c=int(num_str);
      if(a&lt;=0 or b&lt;=0 or c&lt;=0):
            continue
      p=(a+b+c)/2
      S=(p*(p-a)*(p-b)*(p-c))**0.5
      if S&gt;maxs:
            maxs=S
            ans=i
    except:
      None
</code></pre>
<p>print('最大面积为{},边长分别是{}'.format(maxs,ans))</p>
</font><br><br>
来源:https://www.cnblogs.com/alphainf/p/16153125.html
頁: [1]
查看完整版本: Python 第五次实验