• python基础小结


    编辑本文

    目录

    (一)python环境准备

     1、python安装

     2、虚拟环境安装

     3、修改pip镜像源

     4、运行python程序

    (二)python语法

    1、数据类型

    2、数据操作(方法)

    3、python理论特点

    4、函数

    5、类

    6、框架、系统

    7、多任务

    8、装饰器

    9、迭代器、生成器


    正文

    (一)python环境准备

    1、python安装

    python3安装在Linux上:https://www.cnblogs.com/andy9468/p/10437344.html

    2、虚拟环境安装

    安装虚拟环境:https://www.cnblogs.com/andy9468/p/10437344.html

    windows上安装python虚拟环境

    3、修改pip镜像源

    pip升级

    python修改镜像源

    4、运行python程序

    Linux:解决nohup中不写入日志的问题

    windows:在windows中:双击运行Python程序、后台运行Python程序

     

     

    (二)python语法

    1、数据类型

    Python的八种数据类型
    八种数据类型分别是:
    number(数字)、string(字符串)、Boolean(布尔值)、None(空值)、
    list(列表)、tuple(元组)、dict(字典)、set(集合)。

    编辑本文

    2、数据操作(方法)

    https://blog.csdn.net/mdxiaohu/article/details/81811459

    (2)string(字符串)操作方法

    1)len(s)   # 获取字符串长度

    2)s.strip("*")  # 去除s两端的*号,默认去除空格

    3)s.split(",")  # 按照,号分割字符串s为list

    4)s.splitlines()  # 按照行( , , )分割字符串s为list

    5)"@".join(list1)  # 用@号,将list1中的元素连接成字符串

    6)s.replace(oldstr, newstr, count)  # 在s字符串中,用newstr替换oldstr,共替换count次

    7)s.startswith(s0)  # 判断s字符串中是否是s0字串开始的

    8)s.endswith(sn)  # 判断s字串中是否是sn字串结尾的

    9)s.encode("utf-8")  # 将s字串按照utf-8格式编码为二进制流

    10)b.decode("utf-8")  # 将b二进制流按照utf-8解码为s字符串

    (4)None(空值)

    空值None是python里一个特殊的值。

    None不能理解为0,因为0是有意义的,而None是一个特殊值。

    (5)list(列表)——有序、数组、可重复、可变

    1)添加

    list1.append("endstr")

    list1.insert(1,"second")

    list1.extend(  ["aa", "bb"]  )   或者  list1 +   ["aa", "bb"] 

    2)修改

    list1[3] = "newstr"

    3)查询统计

    list1[3] 

    list1[0:2]

    "bbb"  in list1   或者  "bbb"  not in list1 

    list1.index("bbb")      # 输出:bbb的下标

    list1.count("bbb")      # 输出:输出列表中有多少个bbb元素

    len(list1)          # 输出:输出列表中有多少个元素

    4)删除

    del  list1[3]

    list1.pop()     删除列表中最后一个元素,并返回这个元素。

    list1.remove("bbb")   删除了左边第一个“bbb”,无返回值。

    list1.clear()        清空列表

    5)遍历

    ①不带下标遍历

    for  v in list1:

        print(v)

    ②带下标遍历

    for  i, v in enumerate(list1):

        print(i, v)

    6)排序

    list1.sort()      升序,改变原list1

    list1.sort(reverse=True)     降序,改变原list1

    list1.reverse()              反转顺序,改变原list1

     或者

    升序,不改变原list1
    sorted(list1)
    降序,不改变原list1
    sorted(list1, reverse=True)

    7)复制

    list2=list1                  浅拷贝  

    print(id(list1))
    print(id(list2))

    list3=list1.copy()        深拷贝

    print(id(list1))
    print(id(list3))

    (6)tuple(元组)——有序、数组、可重复、不可变

    (7)dict(字典)——无序、键值对、键名不可重复

    1)增加

    dict1["sex"]="boy"

    2)修改

    dict1["sex"]="girl"

    3)查看统计

    dict1["sex"]      # 没有sex就会报错

    ret = dict1.get("sex")  # 没有sex,也不会报错

    if   ret == None:

        print("没有")

    else:

        print("有")

    4)删除

    dict1.pop("sex")   # 删除一个,并且返回

    del dict1["sex"]   # 删除一个

    dict1.clear()    #  全删

    5)遍历

    字典本身无法遍历,可以转成列表后遍历。

    ①遍历键k

    for  k  in  dict1.keys():

         print(k)

    或者

    for  k  in  dict1:

         print(k)

    ②遍历值v

    for  v  in  dict1.values():

         print(v)

    ③遍历键和值(k,v)

    for  k, v  in  dict1.items():

        print(k,v)

    延伸:dict和list比较:

    (a)dict查找和插入的速度极快,不会随着k-v的增加而变慢。

    (b)dict需要占用大量的内存,内存浪费多。

    (8)set(集合)——无序,数组,无重复

    1)增加创建

    set1=set([1,2,3])      # 输出:{1,2,3}

    set2=set((1,2,3,1,2))      # 输出:{1,2,3}

    set3=set({1:"good",2:"nice"})      # 输出:{1,2}

    set1.update([4,5,6])      # 输出:{1,2,3,4,5,6}      update打碎插入

    set1.update("haha")      # 输出:{1,2,3,4,5,6,'h','a','h','a'}     update打碎插入

    set1.add(7)   # 增加元素,add只能插入不可变元素

    2)修改

    3)查询

    set集合没有下标索引,小标访问会报错。

    4)删除

    set1.remove(3)

    5)遍历

    ①无下标遍历

    for   v   in  set1:

        print(v)

    ②下标遍历

    for   i, v   in  enumerate(set1):

        print(i,v)

    6)并集和交集运算

    bing1=set1 |  set2           #  并集

    jiao2 = set1 & set2           #  交集

    3、python理论特点

    Python的发音与拼写
    Python的意思是蟒蛇,源于作者喜欢的一部电视剧 (C呢?)
    Python的作者是Guido van Rossum(龟叔)
    Python是龟叔在1989年圣诞节期间,为了打发无聊的圣诞节而用C编写的一个编程语言
    Python正式诞生于1991年
    Python的解释器如今有多个语言实现,我们常用的是CPython(官方版本的C语言实现),其他还有Jython(可以运行在Java平台)、IronPython(可以运行在.NET和Mono平台)、PyPy(Python实现的,支持JIT即时编译)
    Python目前有两个版本,Python2和Python3,最新版分别为2.7.12和3.5.2,现阶段大部分公司用的是Python2


    优点
    1、简单————Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
    2、易学————就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。强制缩进易懂。
    3、免费、开源————Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。
    4、高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
    5、可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!
    6、解释性————这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
    7、面向对象————Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
    8、可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
    9、丰富的库————Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
    10、规范的代码————Python采用强制缩进的方式使得代码具有极佳的可读性。

    缺点
    1、运行速度,有速度要求的话,用C++改写关键部分吧。
    2、国内市场较小(国内以python来做主要开发的,目前只有一些web2.0公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用他。
    3、中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
    4、构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。

    python的应用场景

    Web应用开发
    操作系统管理、服务器运维的自动化脚本
    科学计算
    桌面软件
    服务器软件(网络软件)
    游戏
    构思实现,产品早期原型和迭代

    4、函数

    5、类

    6、框架、系统

    7、多任务

    8、装饰器

    9、迭代器、生成器

  • 相关阅读:
    burpsuite intruder 小技巧之 自动token验证
    Burpsuite密码爆破(Basic认证)
    burpsuite intruder 小技巧之自动匹配返回值中的特征
    Idea常用快捷键
    SELECT 1,2,3...的含义及其在SQL注入中的用法
    Python break 语句
    Java 抽象类
    SQL中limit的用法
    MSF流量加密躲避检测
    sql注入中常用的语句
  • 原文地址:https://www.cnblogs.com/andy9468/p/11575723.html
Copyright © 2020-2023  润新知