Python(简单图形和文件处理)编程
Python确实是一门很简洁而且功能有强大的语言,我觉得开始学习很容易理解,说到熟练和精通还是不容易的,还需不断学习。
从最基础的语法学习,有些部分各种语言是相同的,让人很好理解。编程也是从最简单语法开始的,之后深入到数据结构和算法,编程语言就此大同小异。
一、文件处理
Python中使用文本文件,通常用open函数,例如file = open('filename.txt','r'),这就是打开一个名为“filename.txt”的文件进行读取,如果要打开绝对路径的文件,就是file = open('C:/Users/.../filename.txt','r'),还有三个相关操作从文件中读取信息:
1. file.read()将文件全部剩余内容作为单个字符串返回(可能是多行的);
2. file.readline()返回文件的下一行,包括下一个换行符;
3. file.readlines()返回文件中剩余行的列表,每个列表项都是一行,包括换行符。
对文件读取操作之后关闭文件file.close(),确保所有操作都已完成,保持磁盘上文件和文件对象一致
二、图形
graphics模块有许多对象和功能,我感觉这个模块很直观呈现出编写程序的运行结果,而且交互式功能体验也不错。下面记下几个会用到的
1.GraphWin对象:win = GraphWin("title",400,400)即是新建一个400*400像素的图形窗口;
win.close()关闭屏幕窗口;
click = getMouse()等待鼠标单击并返回位置;
win = setCoords(0,0,4,4)设置窗口坐标系,左下角(0,0),右上角(4,4)后续的绘制将相对于新的坐标系。
2.Rectangle方法:rect = Rectangle(Point(1,1),Point(3,4)),两个点分别是左上角和右下角。
3.Text方法:text = Text(Point(1,1),"Hello!")
刚好翻到书里面的一道编程题目,感觉很有兴趣,于是我就开始琢磨怎样解题,算是自己练习一下。
题目如下:
编写一个程序来绘制学生考试成绩的水平柱状图。你的程序要求从文件输入。文件第一行包含文件中学生数量的计数,后续每行包含学生的名字,后跟一个0~100范围内的分数。你的程序应为每个学生绘制一个水平柱型,其中柱形长度表示学生的分数。柱形应该对齐左边缘排列。(提示:使用学生的人数来确定窗口的大小和坐标。)
下面是我的解题过程:
首先,题目有几个要求实现:(1)利用文件输入数据 (2)利用分数绘制柱形 (2)把文件数据呈现为直观图
几个知识点结合的一道题目,我觉得值得练习一下
infile = open('read_write.txt','r') #打开文件,属性是“读”
first = infile.readline() #读取文件第一行,学生数量
sum = int(first) #得到数据是‘str’,需要转化为‘int’
from graphics import * #导入模块graphics
win=GraphWin("学生考试成绩水平柱状图",400,400) #新建一个400*400像素的窗口
t = 100 # 绘制图形时用到一个坐标变量
for i in range(sum):
line = infile.readline() #读取文件中一行数据
name,score = line.split() #将一行数据分割为两个数据,name和score
score = int (score)
Text(Point(60, (2 * t + 20) / 2), name).draw(win) #图形中的Text方法,把name打印到窗口
Rectangle(Point(100, t), Point(3 * score,t+20)).draw(win) #根据每个学生分数绘制一个水平柱型(确定坐标,柱形长度)
Text(Point(3 * score+20, (2 * t+20)/2), str(score)+"分").draw(win) #把score打印到柱形后面,直观看到分数对应的柱形长度
t = t+20 #坐标下移,准备绘制下一行
infile.close() #关闭文件
运行结果如图
题目不是很难,我的方法很直接,用到的语法也很简单,从最基础练习,这些知识有实际的运用会更加深刻地牢记和理解,文件处理和graphics模块里面还有特别多的知识,这里只是最简单的应用,python的学习很多,涉及到的知识丰富广泛,需要不断学习。请大家多多指教!
Python(简单图形和文件处理)编程的更多相关文章
- python 简单的实现文件内容去重
文件去重 这里主要用的是set()函数,特别地,set中的元素是无序的,并且重复元素在set中自动被过滤. 测试文本为 data.txt 具体代码如下: // 文件去重 #!/usr/bin/env ...
- python 简单的txt文件读写
1 读取txt文件.跟c相比,python的文件读写简直是方便的可怕 首先是读取文件 首先获得文件名称,然后通过 open函数打开文件,通过for循环逐行读出文件内容 #!python file by ...
- python 间谍程序传输文件 socket编程
本程序实现了,把目标机器的某个目录(可控)的所有的某种类型文件(可控)全部获取并传到己方的机器上. 1.用了base64的encode(infile,outfile)加密,以及decode(infil ...
- python简单图形界面GUI入门——easygui【转】
原文:https://blog.csdn.net/mingqi1996/article/details/81272621 感觉gui做起来成就感比较高,学完基础语言顺便花一个下午看看GUI设计,现在回 ...
- python简单处理xml文件
Python若是想从xml里读点信息,用BeautifulSoup可能会容易一点,但是如果要修改xml,BeatifulSoup就搞不定了,其实直接用lxml就好. from lxml import ...
- 所有人都说Python 简单易学,为何我觉得难?
来谈谈心 记得刚学Python的时候,几乎所有人都说Python 简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难. 学习之前网上的教材看了,Python的书也看了,包括& ...
- Python:tarxjb简单、安全文件拷贝、传输
tarxjb 简单.安全文件拷贝.传输 描述 通过python paramiko库实现简易ssh.sftp执行操作,从而实现文件的远程传输 Github 优点: 可靠传输,文件不易受损 安全传输,避免 ...
- 用 Python 简单生成 WAV 波形声音文件
Python 简单生成 WAV 波形声音文件 让机器发出声响,本身就是一件充满魔法的事情.有没有想过,用一段简单的代码,生成一个最简单的声音呢?Python 这门脚本语言的库十分丰富,借助于其中的三个 ...
- Python全栈【Socket网络编程】
Python全栈[socket网络编程] 本章内容: Socket 基于TCP的套接字 基于UDP的套接字 TCP粘包 SocketServer 模块(ThreadingTCPServer源码剖析) ...
随机推荐
- 07 jQuery的位置信息
一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集合中获取第一个元素的当前计算宽度值.这个方法不接受任何参数..css(width) 和 .width()之间的区别是后者返回一个没有单位 ...
- Spark学习之路(十一)—— Spark SQL 聚合函数 Aggregations
一.简单聚合 1.1 数据准备 // 需要导入spark sql内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSess ...
- git操作相关
-- 创建远程仓库 git init --bare git仓库文件夹名称 从远程仓库复制出本地仓库 git clone ./lth.git local 本地仓库和远程仓库的同步 本地仓库的配置文件co ...
- SSM(一)Mybatis基础
1.持久化与ORM 持久化是数据在内存与硬盘间相互转化的过程 ORM即对象关系映射 程序员使用面向对象的思维方式处理数据,每个对象都是一个pojo.但是保存数据的时候,却以关系型数据库的方式存储.所以 ...
- CentOS 7 时区设置 timedatectl
[root@testandy ~]# timedatectl --help timedatectl [OPTIONS...] COMMAND ... Query or change system ti ...
- CRISP-DM--数据挖掘标准流程
CRISP-DM--数据挖掘标准流程 在1996年的时候,SPSS,戴姆勒-克莱斯勒和NCR公司发起共同成立了一个兴趣小组,目的是为了建立数据挖掘方法和过程的标准.并在1999年正式提炼出了CRISP ...
- 通过phpmyadmin设置数据库密码后若出现phpmyadmin拒绝访问的情况
方法一:可以修改config.inc.php配置文件中的$cfg['Servers'][$i]['password'] = '你的密码'; 方法二:将config.inc.php配置文件中的$cfg[ ...
- 统计学习方法9—EM算法
EM算法是一种迭代算法,是一种用于计算包含隐变量概率模型的最大似然估计方法,或极大后验概率.EM即expectation maximization,期望最大化算法. 1. 极大似然估计 在概率 ...
- 【无线安全实践入门】网络扫描和ARP欺骗
文中可能存在错误操作或错误理解,望大家不吝指正. 同时也希望可以帮助到想要学习接触此方面.或兴趣使然的你,让你有个大概的印象. !阅前须知! 本文是基于我几年前的一本笔记本,上面记录了我学习网络基础时 ...
- 嵊州D2T3 玛利亚∙多斯普拉泽雷斯 完美配对
嵊州D2T3 玛利亚∙多斯普拉泽雷斯 公墓一共有 n 个墓地,通过 n − 1 条通道相连. 每次,推销员可以在选择一个墓地推销给玛利亚. 但是,考虑很多的玛利亚会尽量否决这个提议. 她会选择一个墓地 ...