博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python程序设计之文件
阅读量:3968 次
发布时间:2019-05-24

本文共 2913 字,大约阅读时间需要 9 分钟。

编写程序,根据文件data.txt中的数据,使用turtle库来动态绘制图形路径。

import turtledef main():    # 设置窗口信息    turtle.setup(1024,768,0,0)     # 设置窗体大小及位置    # 4个参数中后两个可选(后两个省略时默认窗口在屏幕正中心)    # setup()不是必须的    # 设置画笔    turtle.pencolor("red")  # 画笔颜色    turtle.width(5)     # 画笔粗细    turtle.speed(5)     # 画笔移动速度    # 读取文件    result=[]    file = open("data.txt", "r")    # r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式    for line in file:   # 将文件中的数据通过迭代送到数组中        result.append(list(map(float, line.split(','))))        # map的第一个参数接收一个函数名,第二个参数接收一个可迭代对象    print(result)    #动态绘制    for i in range(len(result)) :        turtle.pencolor(result[i][3],result[i][4],result[i][5]) #画笔颜色        turtle.forward(result[i][0])    #画笔向前前进        if result[i][1]:            turtle.rt(result[i][2])     #画笔向右旋转        else:            turtle.lt(result[i][2])     #画笔向左旋转    turtle.goto(0,0)    #从当前点去到0,0if __name__  == '__main__':    main()

在这里插入图片描述

在这里插入图片描述
编写程序将电子邮件EmailAddressBook.txt和电话薄TeleAddressBook.txt合并为一个完整的通讯录AddressBook.txt

在这里插入图片描述

给出程序代码如下。

# 利用字符串和列表将两个通讯录文本合并为一个文本def main():    file1=open('TeleAddressBook.txt', 'r') # r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式    file2=open('EmailAddressBook.txt', 'r') # r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式    file1.readline()  # 跳过第一行    file2.readline()  # 跳过第一行    lines1 = file1.readlines()  # readlines()方法用于读取所有行(直到结束符 EOF)并返回列表,    lines2 = file2.readlines()  # readlines()方法用于读取所有行(直到结束符 EOF)并返回列表,    list1_name = []       # 用作 存储    list1_tele = []      # 用作 存储    list2_name = []      # 用作 存储    list2_email = []     # 用作 存储    for line in lines1:  # 获取第一个文本中的姓名和电话信息        elements = line.split()        list1_name.append(elements[0])        list1_tele.append(elements[1])    for line in lines2: # 获取第二个文本中的姓名和邮件信息        elements = line.split()        list2_name.append(elements[0])        list2_email.append(elements[1])    ### 开始处理 ###    lines = []    lines.append('姓名\t      电话      \t   邮箱\n')    # 按索引方式遍历姓名列表1    for i in range(len(list1_name)):        s=''        if list1_name[i] in list2_name:            j = list2_name.index(list1_name[i]) # 找到姓名列表1对应列表2中的姓名            s = '\t'.join([list1_name[i], list1_tele[i], list2_email[j]])            # join方法用于将序列中的元素以指定的字符连接生成一个新的字符串。            s += '\n'        else:            s = '\t'.join([list1_name[i], list1_tele[i], '    -----   '])            # join方法用于将序列中的元素以指定的字符连接生成一个新的字符串。        lines.append(s)    # 处理姓名列表2中剩余的姓名    for i in range(len(list2_name)):        s=''        if list2_name[i] not in list1_name:            s = '\t'.join([list2_name[i], '    -----   ', list2_email[i]])            # join方法用于将序列中的元素以指定的字符连接生成一个新的字符串。            s += '\n'        lines.append(s)    file3 = open('AddressBook.txt', 'w')    # w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。    # 如果该文件不存在,创建新文件。    file3.writelines(lines) # 将之前得到的结果写入    file3.close()   # 关闭文件    file1.close()   # 关闭文件    file2.close()   # 关闭文件    print("地址簿合并完成!")if __name__ == "__main__":    main()

转载地址:http://txyki.baihongyu.com/

你可能感兴趣的文章
控制结构
查看>>
标准输入输出
查看>>
运算符
查看>>
数据类型之列表与数组
查看>>
比较字符串
查看>>
Java EE 精萃
查看>>
Open Source 精萃
查看>>
Java EE 简介
查看>>
Weblogic 简介
查看>>
观察者模式 (Observer)
查看>>
Java 集合框架
查看>>
Weblogic 精萃
查看>>
Servlet 精萃
查看>>
XStream 精萃
查看>>
XStream 环境设置
查看>>
Git 分支
查看>>
Git 冲突
查看>>
Git Merging vs. Rebasing
查看>>
libreoffice/openoffice c/c++转换office格式为pdf
查看>>
Tomcat 7.0 64位免安装解压版 安装及配置
查看>>