zoukankan      html  css  js  c++  java
  • python OS/pdb 模块及数据类型基础

           import time

           time.sleep(2) #暂停2秒

           OS模块: 

    os.chkdir(path)  转换到目录path 下。

    os.system('md a')  可以直接创建目录。

    os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
    ● os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。
    ● os.getenv()和os.putenv()函数分别用来读取和设置环境变量。
    ● os.listdir()返回指定目录下的所有文件和目录名。
    ● os.remove()函数用来删除一个文件。
    ● os.system()函数用来运行shell命令。
    ● os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
    ● os.path.split()函数返回一个路径的目录名和文件名。
    >>> os.path.split('/home/swaroop/byte/code/poem.txt')
    ('/home/swaroop/byte/code', 'poem.txt')
    ● os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。类似地,os.path.exists()函数用来检验给出的路径是否真地存在。

    exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包
    含Python代码的字符串,然后使用exec语句执行这些语句。下面是一个简单的例子。
    >>> exec 'print "Hello World"'
    Hello World
    eval语句用来计算存储在字符串中的有效Python表达式。下面是一个简单的例子。
    >>> eval('2*3')
    6

           已有PY文件new1.py ,在命令行下输入:new1>new.txt 可以将new1运行的结果输出到文件new.txt,这称为流重定向。

           1、dir() 函数  显示属性列表,包括很多东西,其中有变量。

           2、del   命令   删除变量,如del a.

           3、创建你自己的模块
                    #!/usr/bin/python
                    # Filename: mymodule.py
                    def sayhi():
                           print 'Hi, this is mymodule speaking.'
                           version = '0.1'
                    # End of mymodule.py

            4、引用上面模块

                     import mymodule
                     mymodule.sayhi()
                     print 'Version', mymodule.version

               运行结果:

                     # Filename: mymodule_demo.py

                     $ python mymodule_demo.py
                     Hi, this is mymodule speaking.
                     Version 0.1

                 第二种引用方法:

                     # Filename: mymodule_demo2.py
                     from mymodule import sayhi, version
                      # Alternative:
                     # from mymodule import *
                     sayhi()
                     print 'Version', version

                     结果一样。

               5、列表   列表成员由逗号分开,用列表的sort方法来对列表排序。这个方法影响列表本身,而不是返回一个修改后的列表——这与字符串工作的方法不同。这就是我们所说的列表是可变的而字符串是不可变的 。可以对成员赋值,可以将值传入另一列表,但目标列表必须先初始化0,即分配好内存单元。字符串不能给成员赋值。

                 list.sort()分类函数,按大小排列。append添加列表成员,del 删除成员,如  shoplist.append  ('成员'),del shoplist[成员所在下标]。  help(list.sort)

                  • insert(i, x) ---- 在指定位置插入一项。第一自变量是要在哪一个元素前面插入,用下标表示。例如,a.insert(0, x)在列表前面插入,a.insert(len(a), x)等价于a.append(x) 。

                  • append(x) ---- 等价于a.insert(len(a), x)

                     a.extend(list)    添加多个元素。

                  • index(x) ---- 在列表中查找值x 然后返回第一个值为x 的元素的下标。没有找到时出错。

                  • remove(x) ---- 从列表中删去第一个值为x 的元素,找不到时出错。

                  • sort() ---- 对列表元素在原位排序。注意这个方法改变列表,而不是返回排序后的列表。

                  • reverse() ---- 把列表元素反序。改变列表。

                  • count(x) ---- 返回x 在列表中出现的次数。
                    list() and tuple()可以进行列表与元组之间相互转换。

               6、数组和列表十分类似只不过数组和字符串一样是不可变的 即你不能修改数组。数组通过圆括号中用逗号分割的项目定义。数组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的数组的值不会改变。

                    含有0个或1个项目的元组。一个空的元组由一对空的圆括号组成,如myempty = ()。然而含有单个元素的元组就不那么简单了。你必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。即如果你想要的是一个包含项目2的元组的时候,你应该指明singleton = (2 , )。

              

               7、在打印时,加逗号表示打印在同一行,即不换行。不加系统默认换行。

               8、 数组# Filename: print_tuple.py
                     age = 22
                     name = 'Swaroop'
                     print '%s is %d years old' % (name, age)
                     print 'Why is %s playing with that python?' % name

               9、字典  键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒
    号分割,而各个对用逗号分割,所有这些都包括在花括号中。help(dict)查询。

              10、序列

                 列表、数组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。

              11、引用与对象

                    对两个序列a,b. a=b与a=b[:]是不同的,后者是拷贝,前者是两个变量指向同一个对象。

                    字符串的方法

    #!/usr/bin/python
    # Filename: str_methods.py
    name = 'Swaroop' # This is a string object
    if name.startswith('Swa'): print 'Yes, the string starts with "Swa"' if 'a' in name:   print 'Yes, it contains the string "a"' if name.find('war') != -1: print 'Yes, it contains the string "war"' delimiter = '_*_' mylist = ['Brazil', 'Russia', 'India', 'China'] print delimiter.join(mylist)
    输出 $ python str_methods.py Yes, the string starts with
    "Swa" Yes, it contains the string "a" Yes, it contains the string "war" Brazil_*_Russia_*_India_*_China

    PDB 模块:

    用pdb进行python调试

    # epdb1.py -- experiment with the Python debugger, pdb
        a = "aaa"
        b = "bbb"
        c = "ccc"
        final = a + b + c
        print final
    比如要对这个程序进行调试:
    1:在文件前面加上这一句,引入调试的模块。
    import pdb
    2:在要开始调试的一行加上pdb.set_trace()

    加调试语句后,文件变成:

    # epdb1.py -- experiment with the Python debugger, pdb        import pdb        
    a = "aaa"      
    pdb.set_trace()   #debug开始点,断点
    b = "bbb"
    c = "ccc"
    final = a + b + c
    print final

    可以运行这个程序,到断点出会停下来,和gdb类似,
    可以执行命令:
    直接回车是重复前一条命令!
    p(print) 查看一个变量值
    n(next) 下一步
    s(step) 单步,可进入函数
    c(continue)继续前进
    l(list)看源代码
    还可以修改变量的值,但是要注意,前面加上!
    比如要修改final的值,应该这样!final="newvalue"

  • 相关阅读:
    代码编译时JDK版本和运行时JDK版本不一致启动项目报错
    Apache 环境变量配置
    Android NDK 环境变量配置
    Android SDK 环境变量配置
    JAVA 环境变量配置
    FFmpeg Download
    JAVA SE Download
    VS 2015 Download
    BASS HOME
    C++11的闭包(lambda、function、bind)
  • 原文地址:https://www.cnblogs.com/lovemo1314/p/1844446.html
Copyright © 2011-2022 走看看