On the learning of Python
python
python是一门非常厉害的语言,关于它的介绍,就不多说了,只要掌握了基础的语法,剩下的就是逐渐认识python的一些库,python的厉害之处就是有很多各种各样的库,把这些库组合起来,才是最强大存在。
目前python一般就是2.x版本以及3.x版本,我是学的py3.x的版本,其实两个版本差距不大,具体应用的时候,做修改就行了。这篇博客对于有一定代码基础的看起来会比较熟悉,毕竟其实也是我自己做的笔记。
0x01 语法
python文件的后缀一般就是.py,直接上代码,可以非常直观的看出语法的不同,这里拿php进行比较。
php:
<?php
$a = 123; //php在定义变量的时候需要加上$,并且以;结尾
$b = array('a','b','c','d','e');
echo $a;
echo $b;
?>
python:
a = 123 //python在定义变量的时候,不需要加任何符号,直接写就ok了,结尾也不需要分号
b = ['a','b','c','d','e']
print(a)
print(b)
好了,做个对比,一目了然。
粘上我写的第一个小程序,不过是基于2.x版本的,当时写的时候没有注意字符集,导致python3不兼容了。
# coding:utf-8
p = 1
while p:
print('--------------小白工作室----------------')
str = '''(1)取和\n(2)取平均值\n(3)求乘积\n(4)退出'''
print str
option = input('请输入对应编号:')
if option == 1:
s = 0
print('请输入对数值,结束输入请输入0')
num = input('数值:')
while num!=0:
s = num+s
num = input('数值:')
print '和为:%s' % s
elif option == 2:
s = 0
i = 0
print('请输入对数值,结束输入请输入0')
num = input('数值:')
while num!=0:
s = num+s
i = i + 1
num = input('数值:')
s = s/i
print '平均值为:%s' % s
elif option == 3:
s = 1
print('请输入对数值,结束输入请输入0')
num = input('数值:')
while num!=0:
s = num*s
num = input('数值:')
print '积为:%s' % s
elif option == 4:
print('Program end!')
p = False
else:
print('为啥不按提示来?')
现在看来确实白的不行。
0x02 python变量:
区分大小写
输入可以用:raw_input()
input() 最好用这个,可以接收字符串
输出可以用:print
例如:
raw_input('name:')
print '%d fdadsad %s' % (111,'python')
一、数字: %d or %f
定义变量 数字可以不加引号 但是字符串 需要加引号
Python 区分大小写 也就是说 case 跟 Case 是有区别的
python 支持五中基本的数字类型 有三种是整形
有符号整形 1 -1 -12 123
长整型 10000000054646 djadjkjdhasdhkasdh
布尔值 True Flase
浮点值 3.1415926 2.15115
复数 6.23+1.5j -1.23-875j
例如:a = 'sb' or a = "sb" or a = 123
二、字符串: %s
Python支持使用成对单引号或双引号,三引号(三个连续的单引号或者双引号)
可以用来包含特殊字符。使用索引操作符[]和切片操作符[:]可以得到子字符
串。字符串有其特有的索引规则:第一个字符串的索引是0,最后一个字符串
的索引是-1。加好(+)用于字符串连接运算,星号(*)则用于字符串重复。
例如:
pystr = 'python'
iscool = 'is cool!'
pystr[0]
结果为: p
pystr[2:5]
结果为: tho
iscool[:2]
结果为: is
iscool[3:]
结果为: cool!
iscool[-1]
结果为: !
pystr + iscool
结果为: pythonis cool!
pystr * 2
结果为: pythonpython
pystr = '''python
...is cool'''
print pystr
结果为: python
is cool
三、列表和元组
可以把列表跟元组当成普通的数组,它能保存任意数量任意类型的Python对象。
和数组一样可以通过从0开始的数字索引访问元素,但是列表和元组可以存
储不同类型的对象。
列表元素用[]包裹,元素的个数以及元素的值可以改变。元组元素用()包裹,
但不可以更改。切片操作得到子集,与字符串操作类似。
例如:
aList = [1,2,3,4]
aList[0] = 5
aList
结果为: [5,2,3,4]
aTuple = ('robots',77,93,'try')
aTuple[1] = 5
结果为: 报错,不执行
四、字典
字典是Python中的映射数据类型,工作原理类似于Perl中的关联数组或哈希表,
由键-值对(key-value)构成。字典元素由{}构成。
例如:
aDict = {'host':'earth'}
aDict['port'] = 80
aDict
结果为: {'host':'earth','port':80}
aDict.keys()
结果为: ['host','port']
for key in aDict:
... print key,aDict[key]
...
结果为: host earth
port 80
五、if语句
if 条件1:
逻辑语句
elif 条件2:
逻辑语句
else
逻辑语句
六、while语句
while 条件:
逻辑语句
七、for循环
print输出语句会自带一个换行符
for item in ['e-mail','net-surfing','homework','chat']:
print item,
print
for i in range(5):
print i,
print
八、打开文件
handle = open(file_name,access_mode = 'r')
file_name变量包含我们希望打开的文件的字符串名字,access_mode中的'r'
表示读,'w'表示写,'a'表示添加,'+'表示读写,'b'表示二进制访问
如果没有提供access_mode,默认值为'r'。如果open()成功,会返回一
个文件对象句柄,所有后续的操作都必须通过此文件操作句柄进行。
九、and
Python的and逻辑操作符可以将任意表达式连接在一起并得到一个布尔类型的值
十、函数
Python中的函数用小括号()调用。函数在调用之前必须定义。如果函数中没有
return语句,就会自动的返回None对象。
定义函数:
def 函数名(变量):
执行代码
return 返回值
例如:
def addMe2Me(x):
'apply + operation to argument'
return (x+x)
addMe2Me([-1,'abc'])
默认参数:
def foo(debug=Ture):
'determine if in debug mode with default argument'
if debug:
print 'in debug mode'
print 'done'
执行结果:
foo()
in debug mode
done
foo(False)
done
十一、类
定义类:
class ClassName(object):
"""docstring for ClassName"""
def __init__(self, arg):
super(ClassName, self).__init__()
self.arg = arg
十二、模块
模块是一种住址形式,它将彼此有关系的Python代码组织到一个个独立文件当中。
模块可以包含可执行代码,函数,和类。当你创建了一个Python源文件,模块的
名字就是不带后缀的文件名。
导入模块:
import 模块名
访问模块函数或模块变量:
module.function()
module.variable
实例:
import sys
sys.stdout.write('hello word\n')
这是当时做的小笔记,可以说是非常基础了,当然我会慢慢分享我的python学习之路,虽然现在依然很菜,但是起码我是充满信心的。
未完待续。。。
PS:最近跟大佬在一块做渗透,了解了好多小知识点,疯狂的被灌下毒鸡汤,在菜鸡的路上越走越远。。。