Bootstrap

Python学习

pip功能

pip --version & pip -v

安装python包

Eg:Pip install shodan

卸载python包

Pip uninstall shodan

批量导出系统依赖

Pip freeze > requirements.txt

列出所有已经安装的包

Pip list

更新指定的包

Pip install --upgrade package_name

指定下载资源

Pip install -i https//pypi.tuan.tsinghua.edu.cn/simple some-package

基本数据类型

Python3中常见的数据类型

Number(数字):python3支持int、float、bool、complex(复数)在Python 3里,只有一种整数类型int,表示为长整型,没有 python2 中的 Long.像大多数语言一样,数值类型的赋值和计算都是很直观的。内置的 type()函数可以用来查询变量所指的对象类型。

>>>a,b,c,d=20,5.5,True,4+3j

>>> print(type(a),type(b),type(c),type(d))

<class "int'> <class 'float'> <class bool'> <class 'complex'>

String(字符串):制表符,换行符,切片

Python中的字符串用单引号"或双引号"括起来,同时使用反斜杠 **转义特殊字符。

字符串的截取的语法格式如下:

变量[头下标:尾下标]

#!/usr/bin/python3

#定义一个字符串变量str ='SFeather'

print(str)

print(str[0:-1])

print(str[g])

print(str[2:5])

print(str[2:])

print(str *2)

print(str + "TEST")

str[1]='******'

#打印整个字符串

#打印字符事第一个到倒数第二个字符(不包含倒数第一个字符)

#打印字符串的第一个字符

#打印字符串第三到第五个字符(包含第五个字符)

#打印字符串从第二个字符开始到未尾

#打印字符串两次

#打印字符串和"TEST"拼接在,起

# 修改指定的字符

print(str)

Bool(布尔类型)

List(列表)

Tuple(元组)

元组(tuple)

与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间用逗号隔开。

元组推导式

tuple=('name’, 'age', 'address')

x={x for x in tuple}

print(x)

Set(集合)

Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过信移存取。

字典是一种映射类型,字典用{}标识,它是一个无序的键(key):值(value)的集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

字典推导式

num=99

x={x: index*num for index,x in enumerate(['key1','key2','key3'])}

print(x)

条件控制(if,elif)

循环语句 While

Flag = 1

While(flag):print(‘欢迎跟着longyu学习’)

For

list1=[]

for i in range(1,11):

list1.append(i)

print(list)

函数

Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):

    函数体

#!/usr/bin/python3

def hello() :

print("Hello World!")

hello()

迭代

迭代是 Python 最强大的功能之一,是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter()和next()字符串,列表或元组对象都可用于创建选代器:

异常

异常捕捉可以使用 try/except 语句。

以下例子中,让用户输入一个合法的整数,但是允许用户中断这个程序(使用Control-C或者操作系统提供的方法)。用户中断的信息会引发-个KeyboardInterrupt 异常。

while True:

try:

x= int(input("请输入一个数字:"))

break

except ValueError:

print("您输入的不是数字,请再次尝试输入!")

try语句按照如下方式工作;

首先,执行tny子句(在关键字tny和关键字except之间的语句)。

如果没有异常发生,忽略except子句,ty子句执行后结束。

如果在执行ty 子句的过程中发生了异常,那么 ty 子句余下的部分将被忽略。如果异常的类型和 except之后的名称相符,那么对应的except子旬将被执行。

如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的ty中。

-个tny语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

处理程序将只针对对应的ty子句中的异常进行处理,而不是其他的ty的处理程序中的异常。

-个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组

名片管理

cards = [{'name' : 'mjw', 'phone' : '123', 'qq': '614911171', 'emali': "614911dasd"
}]
def menu():
    print('*'*40)
    print('''欢迎使用名片管理系统
    1.新建名片
    2.显示全部
    3.查询名片
    0.退出系统
    ''')
    print('*' * 40)

def new_card(name, phone, qq, email):
    user = {
        'name': name,
        'phone': phone,
        'qq': qq,
        'email': email
    }
    cards.append(user)
    print('成新建名片')

def show_card():
    for card in cards:
        print(card)

def modify_card():
    pass

def del_card():
    pass
def query_card(kw):
    for card in cards:
        for k, v in card.items():
            if kw == v:
                return card
    return False


def quit():
    print('欢迎下次使用名片管理系统')
menu()



while True:
    op = input('请输入你要操作的序号: ')
    if op == '1':
        name = input('请输入你的姓名:')
        phone = input('请输入你的电话:')
        qq = input('请输入你的qq:')
        email = input('请输入你的电子邮箱:')
        result = new_card(name, phone, qq, email)
        if result:
            print('成功新建名片')
        else:
            print('请重试')
    elif op == '2':
        show_card()
    elif op == '3':
        kw = input('请输入查询关键字:')
        result = query_card(kw)
        if result:
            print(result)
            op2 = input('输入4进行修改,输入5进行删除')
            if op2 == '4':
                modify_card
        else:
            print('meiyouxianguanxinxi')
    elif op == '0':
        quit()
        break
    else:
        print('请重试')


 

;