python学习情况

一、python学习

1.python进行针对txt文件的操作(此题是真题试卷里选择的一道完成)

《命运》和《寻梦》都是著名科幻作家倪匡的科幻作品。这里给出一个《命运》和《寻梦》的网络版本,文件名为“命运-网络版.txt”和“寻梦-网络版.txt”。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

问题1:请编写程序,对这两个文本中出现的字符进行统计,字符与出现次数之间用冒号:分隔,将两个文件前 100 个最常用字符分别输出保存到“命运-字符统计.txt”和“寻梦-字符统计.txt”文件中,该文件要求采用 CSV 格式存储,参考格式如下(注意,不统计回车字符):‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

问题2:请编写程序,对“命运-字符统计.txt”和“寻梦-字符统计.txt”中出现的相同字符打印输出。“相同字符.txt”文件中,字符间使用逗号分隔。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬

问题1:

names = ["命运", "寻梦"]

for name in names:

    fi = open(name+"-网络版.txt", "r", encoding="utf-8")

    fo = open(name+"-字符统计.txt", "w", encoding="utf-8")

    txt = fi.read()

    d = {}

    for c in txt:

        d[c] = d.get(c, 0) + 1

    del d['\n'] ls = list(d.items())

    ls.sort(key=lambda x:x[1], reverse=True)

    for i in range(100):

        ls[i] = "{}:{}".format(ls[i][0], ls[i][1])

    fo.write(",".join(ls[:100]))

    fi.close()

    fo.close()

问题2:

def getList(name):

    f = open(name+"-字符统计.txt", "r", encoding="utf-8")

    words = f.read().split(',')

    for i in range(len(words)):

        words[i] = words[i].split(':')[0]

    f.close()

    return words

def main():

    fo = open("相同字符.txt", "w")

    ls1 = getList("命运")

    ls2 = getList("寻梦")

    ls3 = []

    for c in ls1:

        if c in ls2:

            ls3.append(c)

    fo.write(",".join(ls3))

    fo.close()

main()

2.参考书籍用tkinter库试手做了一个游戏(基本是边看书边做的了)

from tkinter import *
import random
import time

class Ball:
    def __init__(self, canvas, paddle, color):
        self.canvas = canvas
        self.paddle = paddle
        self.id = canvas.create_oval(10,10,25,25,fill = color)
        self.canvas.move(self.id, 245, 100)
        starts = [-3,-2,-1,1,2,3]
        random.shuffle(starts)#shuffle来把starts列表混排
        self.x = starts[0]
        self.y = -3
        self.canvas_height = self.canvas.winfo_height()#画布上的winfo_height()函数获取画布当前的高度
        self.canvas_width = self.canvas.winfo_width()#画布的宽度
        self.hit_bottom = False
    def hit_paddle(self, pos):#函数有参数pos代表着小球的当前坐标
        paddle_pos = self.canvas.coords(self.paddle.id)
        if pos[2] >= paddle_pos[0] and pos[0] <= paddle_pos[2]:
            if pos[3] >= paddle_pos[1] and pos[3] <= paddle_pos[3]:
                return True
        return False
    def draw(self):
        self.canvas.move(self.id,self.x,self.y)#0指水平不要移动,-1指在屏幕上向上移动1个像素
        pos = self.canvas.coords(self.id)#函数coords是通过id来返回画布上任何画好的东西的当前x和y坐标
        #coords函数返回一个由四个数字组成的列表来表示坐标
        #print(self.canvas.coords(self.id))得到[255.0,29.0,270.0,44.0]
        #(255.0,29.0)是椭圆左上角坐标(x1,y1),(270.0,44.0)是椭圆右下角坐标(x2,y2)
        if pos[1] <= 0:
            self.y = 3
        if pos[3] >= self.canvas_height:
            self.hit_bottom = True
        if pos[0] <= 0:
            self.x = 3
        if pos[2] >= self.canvas_width:
            self.x = -3
        if self.hit_paddle(pos) == True:
            self.y = -3

class Paddle:
    def __init__(self, canvas, color):
        self.canvas = canvas
        self.id = canvas.create_rectangle(0,0,100,10,fill = color)
        self.canvas.move(self.id,200,300)
        self.x = 0
        self.canvas_width = self.canvas.winfo_width()
        self.canvas.bind_all('<KeyPress-Left>', self.turn_left)
        self.canvas.bind_all('<KeyPress-Right>', self.turn_right)

    def draw(self):
        self.canvas.move(self.id, self.x, 0)
        pos = self.canvas.coords(self.id)
        if pos[0] <= 0:
            self.x = 0
        elif pos[2] >= self.canvas_width:
            self.x = 0
    def turn_left(self, evt):
        self.x = -2
    def turn_right(self, evt):
        self.x = 2

tk = Tk()
tk.title('Game')
tk.resizable(0, 0)#禁止窗口大小可以进行拉伸
tk.wm_attributes('-topmost', 1)#实现窗口的置顶显示,可以用于某些程序的消息提示,能够弹出到桌面显示
canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0)#画布之外没有边框
canvas.pack()#使画布按前一行给出的参数调节自身
tk.update()#刷新页面,为游戏动画作好初始化

paddle = Paddle(canvas, 'blue')
ball = Ball(canvas, paddle, 'red')

while 1:
    if ball.hit_bottom == False:
        ball.draw()
        paddle.draw()
    tk.update_idletasks()
    tk.update()
    time.sleep(0.01)

截图如下:

之前学习tkinter库后知道可以在这个界面上做一些十分简单的游戏,这次偶然在一本书上看到了相关的代码,所以就边看书边试着做了下。

二、django学习情况

因为前两天才知道大家django都是学习的统一的课程,所以才开始在慕课网上学习django,目前学到了3-2配置表单页面

简述下目前遇到过的问题:

1.安装virtualenv时安装到了python3上,所以又重新去安装到python2.7版本上,但是发现cmd中python2.7文件pip是无效指令,上网搜索得知是python2.7的版本版本过低,因此又重新下载了更高版本的python2.7才得以成功配置出虚拟环境。

2.在cmd上直接通过workon testvir指令进入虚拟环境必须先配置好环境变量。

3.pycharm中的interpreter一定要设置成虚拟环境中的python.exe,之前因为基本没用过pycharm所以在这里恍惚了一下。

4.对django还不是很了解,学习课程虽然边看边照样子做了但是其中内部的一些原理还没搞懂,很多步骤做了自己都也忘了,还需多加熟悉。

三、安排

1.寒假保持刷python考试编程题库,争取3月份直接过了,各种各样原因导致拖了两次都没能去考。

2.在django学习上努力追赶大家进度。

猜你喜欢

转载自blog.csdn.net/CMCCEDU2/article/details/86551728