1.完成本章中的例6.1~例6.18,熟悉Python程序的输入和输出功能。

2.(P6-prg2.py)尝试修改例6.2编写命令行参数解析的程序,解析命令行参数所输入边长的值,计算并输出正方形的周长和面积。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--length', default = 10, type =int, help ='边长')
args = parser.parse_args()
length = args.length * 4
area = args.length * args.length
print('周长:',length)
print('面积:',area)

3.(P6-prg3.py)尝试修改例6.8编写读取并输出文本文件的程序,由命令行第一个参数确认所需输出的文本文件名。

import sys
filename = sys.argv[1]      #所读取并输出的就是本程序文件
f = open(filename,'r',encoding = 'utf-8') #打开文件
line_no=0                    
while True:
    line_no+=1
    line = f.readline()
    if line:
        print(line_no,":",line)
    else:
        break
f.close()

4.(P6-prg4.py)尝试修改例6.9编写利用with语句读取并输出文本文件的程序,由命令行第一个参数确认所需输出的文本文件名。

import sys
filename = sys.argv[1]
line_no = 0
with open(filename,'r',encoding = 'utf-8') as f:
    for line in f:
        line_no +=1       #行号计数
        print(line_no,",",line)  #输出行号和该行内容

5.(P6-prg5.py)尝试修改例6.12编写标准输出流重定向的程序,从命令行第一个参数中获取n的值,然后将0~n、0~n的2倍值、2的0~n次幂的列表打印输出到out.log文件中。

import sys
n = int(sys.argv[1])
power = 1
i = 0
f = open('out.log','w')
sys.stdout = f

while i<= n:
    print(str(i),' ',str(power),' ',str(twice))
    power = 2*power
    i =i+1
    twice = 2*i
sys.stdout = sys.__stdout__
print('done!')

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐