呃
查漏补缺,更加系统的学习吧
感觉这本书有些老旧了吧
不过让那个实战教程搞的头都大了
心得体会
- IDE的使用,我一直都不知道可以用,书上还特意说了不要用Nopad,因为没有相应的语法高亮。
字符串的乘法也有讲
‘ha’*3 =’hahaha’
n = 25.5%2.25
print(n)
书上说是1.5
我试了一下,是0.75,我觉得应该就是0.75
哦,书上是-25.5
哦
哦&位与
|位或
^位异或
~位翻转还非常贴心有一些给其它语言程序员的小tips
while在最后还可以加一个else,相当于while…else…了,话说直接while后面加不行吗?书的作者也觉得多余……
诶,while…else…有用了,如果在while内置了break,执行break,直接跳出while,else便不会被执行
contine函数,很不常用啊,没什么特别的
global好像不是在声明时使用的,函数内调用时才声明
关键参数指定赋值时可以不分先后,虽然感觉也没啥用
DocStrings,一个新东西…不过这个教程确实有点过分简明了,真碰到不会的还真不好懂。
为了增强代码的可读性,可以在函数后书写“文档字符串”(Documentation Strings,或者简称docstrings),用于解释函数的作用、参数的类型与意义、返回值类型与取值范围等。它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。可以使用.__doc__
(注意双下划线)调用printMax函数的文档字符串属性(属于函数的名称)pyc文件,有点太简洁了
是一种py文件的经过几层编译后输出的文件,比python语言更加底层,相对于py文件可以被更快的执行,一般被import的文件会生成pyc文件方便下次调用。from…import…可以直接获取from里的变量,注意变量名冲突就好了。
__name__
只有被执行的模块的__name__
才会是__main__
,其它被import的都不是。可以被用来做当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表
print(x,end = ” )即在print函数后面加上end = ”即可不换行,嗯……print函数里不知道有多少个形参呢
话说这本书的实战跨度也不太小,不过还好
这本书的打开文件教程里没有with,估计那时候还没有吧
- 18.
实战心得
版本一
初稿:
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = [r'G:\xx\pyt.py', r'G:\yy\new.txt']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = r'G:\xx'# Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The name of the zip archive is the current date and time
target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command='"H:\WinRAR\Rar.exe" a %s %s'%(target,' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print ('Successful backup to', target)
else:
print ('Backup FAILED')
相对而言理解起来要简单不少,只有在压缩文件命令那里出现了问题
windows本身不是自带zip命令的,这就需要上网搜索
由于使用的是winrar,所以对应的压缩命令也应选用winrar的,可是更换了压缩命令,配置了环境变量,仍然不行,只有将压缩命令改为
zip_command='"H:\WinRAR\Rar.exe" a %s %s'%(target,' '.join(source))
在顺利运行后,检测结果,发现和预想的有些差距,压缩后的文件本来在设计中应该放入G盘的xx文件夹内,结果却成了G盘里一个以xx为文件名开头的文件。将r'G:\xx'
变为r'G:\xx\'
后,依然报错,
看了一下,很像是\把’转义了,但是加r的不是说好不转义的吗。然后变成双斜杠,便可以成功运行了,但是感觉好蠢,于是上网搜索是怎么回事,具体解释倒是没有,不过找到了解决办法,就是将斜杠变成反斜杠即可(终于知道谁是正的谁是反的了)(卧槽,书上说的正反和这里不一样啊)。代码如下:
终稿:
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = [r'G:\xx\pyt.py', r'G:\yy\new.txt']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = r'G:/xx/'# Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The name of the zip archive is the current date and time
target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command='"H:\WinRAR\Rar.exe" a %s %s'%(target,' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print ('Successful backup to', target)
else:
print ('Backup FAILED')
版本二
日期为目录,时间为文件名
我猜是把代码改成这样
target = target_dir + time.strftime('%Y%m%d') + '\\'+ time.strftime('%H%M%S') + '.zip'
很可惜不能运行。
终稿:
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = [r'G:\xx\pyt.py', r'G:\yy\new.txt']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = r'G:/xx/'# Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The current day is the name of the subdirectory in the main directory
today = target_dir + time.strftime('%Y%m%d')
# The current time is the name of the zip archive
now = time.strftime('%H%M%S')
# Create the subdirectory if it isn't already there
if not os.path.exists(today): #判断文件夹是否存在
os.mkdir(today) # make directory 创建目录
print ('Successfully created directory', today)
# The name of the zip file
target = today + os.sep + now + '.zip'#os.sep根据你的操作系统给出目录分隔符,即在Linux、Unix下它是'/',在Windows下它是'\\',而在Mac OS下它是':'。使用os.sep而非直接使用字符,会使我们的程序具有移植性,可以在上述这些系统下工作。
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command='"H:\WinRAR\Rar.exe" a %s %s'%(target,' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print ('Successful backup to', target)
else:
print ('Backup FAILED')
版本三
可以手动输入些注释进去,并加在文件名后面(当然可以不加)
终稿:
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = [r'G:\xx\pyt.py', r'G:\yy\new.txt']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = r'G:/xx/'# Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The current day is the name of the subdirectory in the main directory
today = target_dir + time.strftime('%Y%m%d')
# The current time is the name of the zip archive
now = time.strftime('%H%M%S')
# Take a comment from the user to create the name of the zip file
comment = input('Enter a comment --> ')
if len(comment) == 0: # check if a comment was entered
target = today + os.sep + now + '.zip'
else:
target = today + os.sep + now + '_' +comment.replace(' ', '_') + '.zip'#replace替换函数,可以将字符串内的所有前边的都换成后边的
# Create the subdirectory if it isn't already there
if not os.path.exists(today):
os.mkdir(today) # make directory
print ('Successfully created directory', today)
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command='"H:\WinRAR\Rar.exe" a %s %s'%(target,' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print ('Successful backup to', target)
else:
print ('Backup FAILED')
直接在版本二上改的,漏删版本二的一句话,结果输出文件名一直没变…
版本四
。。。然而并没有什么版本四,不存在的
__init__
方法
__init__
方法在类的一个对象被建立时,马上运行。这个方法可以用来对你的对象做一些你希望的初始化 。注意,这个名称的开始和结尾都是双下划线。
__del__
方法
__del__
方法在类的一个对象被消除时,运行,不确定具体时间。这个方法可以用来对你的对象做一些你希望的结尾 。注意,这个名称的开始和结尾都是双下划线。
exec
exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。
eval
eval语句用来计算存储在字符串中的有效Python表达式。
写在最后的话
接下来应该是去写一些实战以及翻阅文档吧