注释:# 英文名是octothorpe
在敲代码的过程中,如果想对一段代码进行注释处理,全选然后 Ctrl+/ 键
cars_not_driven=100
print("There will be",cars_not_driven,"empty cars today.")
输出:
There will be 100 empty cars today.
%r %s %d等等的应用:他们是一种格式控制工具。让我们看看下面比较完整的格式控制工具集。
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化字整数
%u 格式化无符号整型
%o 格式化无符号八进制熟
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学记数法格式化浮点数
%p 用十六进制数格式化变量的地址
如果我们不太确定用什么,那么用%s是最保险的,它会把任何数据类型转换为字符串
%r和%s有什么不同?
%r用来调试最好,因为它会显示变量的原始数据,而%s和其他符号则是用来向用户显示输出的。
转义字符 \
错误例子:
print(“I said :“get out!””) 这段代码很明显是不能运行的,因为后面两个引号会被识别为是字符串的边界,所以正确的写法应该是加入转义字符,不影响最终结果的打印。
正确例子:
print("I said:\"get out!\"")
以下你会看到一些经典的转义序列:
\\ 反斜杠(\)
\' 单引号(')
\" 双引号(")
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符
在python3中 已经不支持raw_input()的写法
而是input(),但是你输入进去的数据会被当作字符串处理
所以假如你要把你输入的数据换成一种数据类型的时候,比如整数
int(input())
一般来说,你提问别人的时候,你会输入这样的代码:
print(“What is your name?”)
my_name=input()
其实,你可以合并到一句,进行直接的提问:
my_name=input("What is your name?")
from sys import argv
这一段呢比较有意思,其实就是包与模块纠缠不清的爱情故事
argv:参数变量。
import语句:将python的特性引入脚本的方法,相当于需要什么就调用什么来用。
还是暴力通俗解释一下吧,from sys import argv你可以理解为:
sys是一个功能包,这句话的意思就是从该功能包中取出argv这个特性来使用,实现相应的功能。
不多BB,我们进入到下一个读取文档的阶段,看看这段代码
from sys import argv #从sys软件包中获取一个argv的功能。
script,filename=argv #输入本文件的名字和想要运行文件的名字。
txt=open(filename) #python open() 函数 可以打开一个外部文件。
print("Here is your file %r:"%filename)
print(txt.read()) #将打开的外部文件的变量 进行变量.read()运行,即可打印外部文件的内容。
print("Type the filename again:")
file_again=input(">")
txt_again=open(file_again)
print(txt_again.read())
上文中,我用了txt变量定义一个open()函数。所以这个时候txt就等于你要打开的外部文件了
然后print(txt.read())
你就可以打印出你要打开的外部文件里面的内容了,通常外部文件的类型是txt,其他类型也可以。
可以看看下面的扩展知识:
以下是其他各种与文件相关的命令:
close---关闭文件。
read---读取文件内容。(可以把结果赋给一个变量)
readline---读取文本文件中的一行。
truncate---清空文件,请小心使用该命令。
write(stuff)---将stuff写入文件。
那么,看到这儿,很显然了,心中肯定不自觉的萌生出想要进行骚操作的想法。比如打开1.txt外部文件并修改里面的内容:
在argv中,先刚一波这一段 newfile=1.txt,进入正题
txt=open(newfile,‘w’)
这时候有些人就要说了,卧槽,这‘w’是什么JB玩意!
不要慌,这个‘w’乃是逆天改命大法的一个超级字符串……
行吧!‘w’其实就是一个参数,意味着这个文件进入写入模式,可以进行编辑了。
那么我们来看看相关的参数,如下:
open(文件名,'w')是写入模式
open(文件名,'r')是读取模式
open(文件名,'a')是追加模式
open(文件名)是默认模式,访问
不过有些人应该会有这样的需求,先把文档里面的内容清空,然后再自己编辑东西加进去
那就加一句
txt.truncate()#用于截断文件并返回截断的字节长度
指定长度的话,就从文件的开头开始截断指定长度,其余内容删除;
不指定长度的话,也就是只打一个()就从文件开头开始截断到当前位置,其余内容删除。
哦对,差点忘了,还有要怎么写进去这个外部文件呢?
txt.write() 这就是一个写入操作。
最后呢,你如果只是默默改掉txt文件里面的内容,并不想让它一直出现
最后来个拔吊无情的代码,进行关闭它吧!
txt.close()
接下来我们进入一个无中生有的阶段,就是将一个存在的txt文档进行一个复制,生成新的txt的文档。
废话不多说,代码来也:
from sys import argv
from os.path import exists#一个神秘的os.path模块,此代码判断对象在不在。
script,from_file,to_file=argv
print("Copying from %s to %s"%(from_file,to_file))#交代想做的事
#we could do these two on one line too,how?
in_file=open(from_file)
indata=in_file.read()#这是一段好代码,你并不需要打印出来,直接赋值 干净利落。
print("The input file is %d bytes long"%len(indata))
print("Does the output file exist?%r"%exists(to_file))
print("Ready,hit RETURN to continue,CTRL-C to abort.")
input()
out_file=open(to_file,'w')#你想要复制到一个新文件,肯定要打开写入模式编辑呀。
out_file.write(indata)
print("Alright,all done.")
out_file.close()#关闭两个外部文件,使整个过程始终停留在这个文件。
in_file.close()
输出的结果:
Copying from 1.txt to new-1.txt
The input file is 98 bytes long
Does the output file exist?False
Ready,hit RETURN to continue,CTRL-C to abort.
Alright,all done.
(可以看到,文件夹里面多了一个new-1.txt文件,内容和1.txt一模一样)
其实呢,这个脚本太特么啰嗦了,有没有道理?
我直接让他进行复制,不要问我那么多问题,我们屌大的也很忙啊!
于是我简化了这段代码如下:
from sys import argv
from os.path import exists#一个神秘的os.path模块,此代码判断对象在不在。
script,old_file,new_file=argv
aa=open(old_file)
fileone=aa.read()
#我遇到过一个很有意思的问题,我想复制一个里面内含中文字符或中文逗号的TXT的时候,
#此处疯狂报错,于是我将TXT里面的内容换成了英文,这段代码成功运行出来。
#待解决问题:复制一个中文TXT。
bb=open(new_file,'w')
bb.write(fileone)
aa.close()
bb.close()
所以,怎么成功复制带有中文的txt文档,目前来说还在探索。虽然我知道,python编码不支持中文汉字甚至一个中文逗号