python基础篇
python是一种面向对象、解释型的计算机语言
一.解释型语言和编译型语言
编译型语言:把写好的程序翻译成计算机语言然后执行,一次编译到处运行,比如c、c++就是编译型语言,特点是运行速度快,前提条件:先把程序编译好。
解释型语言:程序在运行的时候,通过一个解释器,把代码一句一句的翻译成计算机语言然后运行,也就是写好代码后直接运行,比如说python、shell、ruby、java、perl等等都是解释型语言,执行速度没有编译型语言快。
二.字符集
Python2.x版本中默认字符集是ASCII编码,写中文会报错
python3.x版本中默认字符集是utf-8,支持中文
瞎说:什么是2进制,就是0,1,计算机只识别这俩数字,0或1为一"位",规定8位为一个字节,字节是表示现实世界字符的最基本的一个单元,比如说一个英文字母,一个字节是8位,也就是最多能存8个0或者1,8位二进制最大值是255
ASCII码表:http://www.96yx.com/tool/ASC2.htm--127个数字,代表了所有的英文大小写字母和符号
三.变量
python定义变量不需要指定数据类型, 变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量的话,新的变量通过之前那个变量知道那个变量值的内存地址存起来,而不是指向的之前那个变量。代码如下:
name = '金三胖'
new_name = name #new_name存的也是金三胖的内存地址
变量的定义规则:
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally',
'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return',
'try', 'while', 'with', 'yield']
四.python中的单引号、双引号和三引号(就是三个单引号)
python中定义变量的时候字符串需要用引号括起来,单引号和双引号没有区别,字符串里面有单引号外面就用双引号,里面有双引号外面就用单引号,如果既有单又有双,那么用三引号
三引号也可以多行注释代码,单行注释,使用#,代码如下:
msg = "I'm 金三胖." #有单引号,所以外面用双引号
info = 'Python comments ues "#".' ##有双引号,所以外面用单引号
new_msg = '''I'm 金三胖, i love "Python".'''#有双引号和双引号,所以外面用三引号
'''
上面的代码是说明单引号、双引号和三引号的
这一段是注释,说明三引号也有多行注释的功能
'''
五.输入、输出
python接收用户输入用input函数,输出用print
python2中使用raw_input,接收的是一个字符串
代码入下:
name=input('Please enter your name:') #把接收到的值赋给name变量
print(name)#输出接收到的输入
input在接收输入的时候,是可以看到你输入的值的,如果是输入密码这样的呢,不想让别人看到你的密码,怎么办呢,就需要用到一个标准库,getpass,什么是标准库呢,就是不需要你再去安装,装完python就有的库,就是标准库,getpass就是一个标准库,导入进来之后,直接使用getpass.getpass方法就可以在输入的时候,不回显了,代码如下:
import getpass #导入getpass模块
password = getpass.getpass('Please enter your password:') #接收输入的密码
print(password)
六:条件判断
python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样,否则就怎么怎么这样,格式如下:
注: python中是以缩进来表示代码块
score = int(input('请输入你的分数:')) #接收输入,因为input接收的是一个字符串,所以需要用int函数强制类型转换成整数类型
if score==100: #如果成绩等于100分的话
print('小天才,你是满分')
elif score >=90 and score < 100: #如果成绩大于等于90分小于100分的话
print('兄弟,你的分数不低啊,不错')
elif score > 60 and score <90:#如果成绩大于60分小于90分的话
print('兄弟,这次考试马马虎虎啊')
else: #如果分数小于60分的话
print('兄弟,你在搞什么,该努力了')
七.循环
while和for两种循环的区别:
while循环之前,先判断一次,如果满足条件的话,再循环,
for循环的时候必须有一个可迭代的对象,才能循环
continue:跳出本次循环,继续进行下一次循环
break:停止循环,也就是说在continue和break下面的代码都是不执行的,格式如下:
#while 循环
count = 0
while count<10: #如果count小于10的话,就执行下面的代码,如果不小于3就走else
print(count)
if count==5:
break#如果count等于5的话,就结束循环
count+=1 #这个意思是每次循环完,count的值就加一,如果不加的话,条件就一直为真了,就死循环了,一直不停的循环
else:#这个else是可以不写的,意思就是说,如果条件不满足了去干嘛
print('条件没满足')
#for 循环
names = ['marry','lily','lilei']
for name in names:
if name == 'lily':
contiune #如果名字等于lily的话,就不执行continue下面的代码了,再循环下一次
print(name)
else:#for也有个else,不过这个一般没人写它,意思是如果正常循环完了去做什么
print('over')
八.格式化输出
格式化输出三种方式:
第一种是用“+”连接,直接把输出的字符串和变量连接起来就可以了;
第二种是用占位符,占位符有常用的有三种,%s、%d和%f
%s是后面的值是一个字符串,%d是后面的值必须是一个整数,%f后面是小数;
第三种是使用{}和fromat方法,
第一种用加号的,会在内存里面开辟多个内存空间,而后面两种是只开辟一块内存空间,使用方式如下:
name = input('请输入你的名字:')
print('你的名字是'+name) #使用加号连接
print('你的名字是%s'%name)#使用占位符
print('你的名字是{your_name}'.format(your_name=name)) #使用format格式化输出,{}里面的名字可以随便写但是
要和后面的format中的名字保持一致,然后再把你前面定义的变量写到等号后面就可以了。
age = 18
print('我的名字是%s,年龄是%d岁.'%(name,age))#这种是里面有多个格式化内容的,前面那个是字符串,后面这
个是整数,多个变量的后面跟值的时候必须要加上括号
九.Python快捷键
十.文件读写
python中的读文件:
python中提供了一个函数open(name[, mode[, buffering]]) -> file object,【后面两个参数可选】
mode: 默认mode为r读模式,mode有几个值,r,w,a,分别为读,写,追加写入文件,其中r必须是存在的文件,w和a对不存在的文件会自动创建文件r+, 这个是读写模式,这个也要求文件必须存在,好处是,打开文件后,可写可读,rb, wb,r+b等模式,这些在windows系统下为二进制的方式进行读取,在Linux下没有区别
buffering的值为: 0没有缓冲区大小,1按行读取文件, 大于1的为指定的字节数,返回一个文件对象
如: f = open("/data/test.log") -> 大开一个模式为读文件,没有缓冲的文件对象
f = open("/data/test.log", 'r', ) ->跟上一个一样
f = open("/data/test.log", 'rw') ->读写文件
读入文件内容(按行读取):
content = f.read() ->将全部的文本一次读出
lineList = f.readlines() ->将文件按行读出,读出后转换为一个list存储
lineList = list(f) -> 同f.readlines(),这样可以利用for循环来操作没一行
如:for line in f.readlines():print line
还可以直接对文件对象用for循环操作:for line in f: print line
按字节读取文件: content = f.read(size) ->读入指定的大小的字节,若未指定,则表示读入整个文件或当前位置到最后
f.seek(offset[, whence]) -> 将当前的读入指针移动到指定的位置:这里取决于whence的值, 默认为0,0绝对位置, 1,相对位置,2,从文件末尾倒数 。如:
f.seek(100) ->指针跳到第100个字节
f.seek(100, 1) ->指针跳到离当前位置的100个字节位置,即currentPosition + 100
f.seek(-100, 2) ->指针跳到文件末尾倒数第100个字节的位置
文件写入:
f = open("/data/test.log", 'w') ->这个模式为:若文件不存在,创建文件,若存在,当写入文件后,原来的全部内容清楚
f= open("/data/test.log", 'a') ->这个模式为追加append,若文件不存在,创建文件,即在现有的内容中在后面添加写入的内容
f.write("something") ->写入相应的文件,如要一行一行写入,必须在后面加上"\n"
f.writelines(stringList) ->一次写入多行,传入的是一个字符串的list
f.tell() ->告诉当前的文件指针,每读文件一次,都在改变
f.close() ->关闭文件
十一.python工具
- Sublime Text
- PyCharm
推荐博客地址:http://www.nnzhp.cn/article/13/