python学习日记_第六天(ex14~15)

时间:2022-03-05 00:30:27

L14 提示和传递

1.巩固参数和变量还有%这个字符串格式化工具

2.提示符可以定义一个固定值来复用会比较方便


#coding:utf-8
from sys import argv

#脚本,用户名,男主角,女主角
script, user_name, role_man, role_woman = argv
#提示符
prompt = '> '

print "Hi %s, I'm the %s script." % (user_name, script)
print "I'd like to ask you a few questions."
print "Do you like me %s?" % user_name
#获得输入
likes= raw_input(prompt)

print "Do you know about %s?" % role_man
know_man = raw_input(prompt)

print "Do you know about %s?" % role_woman
know_woman = raw_input(prompt)

print """
Alright, so you said %r about liking me.
You said %r about knowing %s.
And %r about knowing %s.
But I know them.they love each other very much.
""" % (likes, know_man, role_man, know_woman, role_woman)

"""
加分题:
1查一下 Zork 和 Adventure 是两个怎样的游戏。看看能不能下载到一版,然后玩玩看。
32位才能玩,64位不好跑,就是个纯文字用代码命令玩的冒险游戏。

2.将 prompt 变量改成完全不同的内容再运行一遍。
已执行过

3.给你的脚本再添加一个参数,让你的程序用到这个参数。
添加role_man和role_women参数

4.确认你弄懂了三个引号 \"\"\" 可以定义多行字符串,而 % 是字符串的格式化工具。
sure
"""


L15读取文件

1.熟悉了读取命令的方式,通过参数和用户输入两种方式得到文件位置。

2.通过pydoc得到read的拓展命令。

3.通过close()点到垃圾回收程序思想。


#coding:utf-8
#习题 15: 读取文件
#下面是练习原代码
from sys import argv
script, filename = argv

txt = open(filename)
print "Here's your file %r:" % filename
print txt.readlines()
#加分题8,close
txt.close()


print "Type the filename again:"
user_filename = raw_input("> ")
txt_again = open(user_filename)
print txt_again.read()
#加分题8,close
txt_again.close()

"""
加分题:
1.在每一行的上面用注解说明这一行的用途。
2.如果你不确定答案,就问别人,或者上网搜索。大部分时候,只要搜索 “python” 加上你要搜的东西就能得到你要的答案。比如搜索一下“python open”。
我使用了“命令”这个词,不过实际上它们的名字是“函数(function)”和“方法(method)。上网搜索一下这两者的意义和区别。看不明白也没关系,迷失在别的程序员的知识海洋里是很正常的一件事情。
函数(function)和方法(method)基本是一样的,都是实现功能的一段代码,少量的区别:
1.函数主要是内部使用,方法主要是暴露给外部使用
2.函数偏面向过程,方法偏面向对象

4.删掉 10-15 行使用到 raw_input 的部分,再运行一遍脚本。
当然可以运行,只是没有输入和再输出的部分。

5.只是用 raw_input 写这个脚本,想想那种得到文件名称的方法更好,以及为什么。
这个没有本质的好与坏,看需求,通过参数定义可以让用户不输入也能得到一个文件名?

6.运行 pydoc file 向下滚动直到看见 read() 命令(函数/方法)。看到很多别的命令了吧,你可以找几条试试看。不需要看那些包含 __ (两个下划线)的命令,这些只是垃圾而已。
7.再次运行 python 在命令行下使用 open 打开一个文件,这种 open 和 read 的方法也值得你一学。
readline([size]):只读取第一行,可以输入size来指定读取长度。
readlines():读取文件后返回一个字符串列表,每一行作为一个元素。

8让你的脚本针对 txt and txt_again 变量执行一下 close() ,处理完文件后你需要将其关闭,这是很重要的一点。
close()是为了释放资源。如果不close(),那就要等到垃圾回收时,自动释放资源。垃圾回收的时机是不确定的,也无法控制的。
很重要程序思想。

"""