zoukankan      html  css  js  c++  java
  • python常见问题以及基础语法知识

    一、编译方面

    1、报错:

    错误描述:

    python编程时(测试环境 Python 2.7),遇到如下错误:

    ERROR (UnicodeEncodeError): 'ascii' codec can't encode character u'uff08' in position 9: ordinal not in range(128)

    python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。

    如下,代码开头处添加如下代码
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')

    二、基础语法知识

    1、基本预算

    (1)用内建函数 id()可以查看每个对象的内存地址,即身份;type()查询对象的类型;对象有类型,变量无类型;round()表示四舍五入;dir(module)是一个非常有用的指令,可以通过它查看任何模块中所包含的工具。

    (2)

    >>> divmod(5,2)  # 表示 5 除以 2,返回了商和余数
    (2, 1)

    (3)前两行必填

    #!/usr/bin/env python
    这一行是必须写的,它能够引导程序找到 Python 的解析器,也就是说,不管你这个文件保存在什么地方,这个程序都能执行,而不用制定 Python 的安装路径。
    
    #coding:utf-8
    这一行是告诉 Python,本程序采用的编码格式是 utf-8
    ```
    注释
    ```
    #注释2

    (4)str(a)实现将整数对象转换为字符串对象; repr()是一个函数,其实就是反引号的替代品,它能够把结果字符串转化为合法的 python 表达式。

    print b + repr(a)   #repr(a)与上面的类似
    free1989 

    (5)切片

    >>> lang
    'study Python'    #在前面“切”了若干的字符之后,再看一下该字符串,还是完整的。
    >>> lang[2:9]
    'udy pyt'
    len():求序列长度
    :连接 2 个序列
    : 重复序列元素
    in :判断元素是否存在于序列中
    max() :返回最大值
    min() :返回最小值
    cmp(str1,str2) :比较 2 个序列值是否相同
    通过下面的例子,将这几个基本操作在字符串

    (6)tring.format()的格式化方法,其中 {} 作为占位符。

    >>> s1 = "I like {}".format("python")
    >>> s1
    'I like python'

    (7)"[sep]".join(list),join 拼接字符串;split()不输入任何参数,显示就是见到任何分割符号,就用其分割了。

    >>> b
    'www.itdiffer.com'
    >>> c = b.split(".")
    >>> c
    ['www', 'itdiffer', 'com']
    >>> ".".join(c)
    'www.itdiffer.com'
    >>> "*".join(c)
    'www*itdiffer*com'
    >>> name
    ['Albert', 'Ainstain']
    >>> "".join(name)       #将 list 中的元素连接起来,但是没有连接符,表示一个一个紧邻着
    'AlbertAinstain'
    >>> ".".join(name)      #以英文的句点做为连接分隔符
    'Albert.Ainstain'
    >>> " ".join(name)      #以空格做为连接的分隔符
    'Albert Ainstain'

    (8)list.remove(x)中的参数是列表中元素,即删除某个元素;list.pop([i])中的 i 是列表中元素的索引值,这个 i 用方括号包裹起来,意味着还可以不写任何索引值,如上面操作结果,就是删除列表的最后一个;

    (9)

        能够索引的,如 list/str,其中的元素可以重复可变的,如 list/dict,即其中的元素/键值对可以原地修改不可变的,如 str/int,即不能进行原地修改

    无索引序列的,如 dict,即其中的元素(键值对)没有排列顺序
    
    # set
    有的可变,有的不可变;元素无次序,不可重复。
    tuple 算是 list 和 str 的杂合,那么 set 则可以堪称是 list 和 dict 的杂合.

     (10)range函数:

    >>> range(9)                #stop=9,别的都没有写,含义就是 range(0,9,1)
    [0, 1, 2, 3, 4, 5, 6, 7, 8] #从 0 开始,步长为 1,增加,直到小于 9 的那个数 
    >>> range(0,9)
    [0, 1, 2, 3, 4, 5, 6, 7, 8]
    >>> range(0,9,1)
    [0, 1, 2, 3, 4, 5, 6, 7, 8]
    
    >>> range(1,9)              #start=1
    [1, 2, 3, 4, 5, 6, 7, 8]
    
    >>> range(0,9,2)            #step=2,每个元素等于 start+i*step,
    [0, 2, 4, 6, 8]

    (11)文件读写

    >>> with open("130.txt","a") as f:
    ...     f.write("
    This is about 'with...as...'")
    ... 
    >>> with open("130.txt","r") as f:
    ...     print f.read()
    ... 
    learn python
    http://qiwsir.github.io
    qiwsir@gmail.com
    hello
    
    This is about 'with...as...'

    (12)构造类

    #!/usr/bin/env Python
    # coding=utf-8
    
    __metaclass__ = type             #新式类
    
    class Person:                    #创建类
        def __init__(self, name):    #构造函数
            self.name = name
    
        def getName(self):           #类中的方法(函数)
            return self.name
    
        def color(self, color):
            print "%s is %s" % (self.name, color)
    
    girl = Person('wangguniang')      #实例化
    name = girl.getName()            #调用方法(函数) 
    print "the person's name is: ", name
    girl.color("white")              #调用方法(函数)
    
    print "------"
    print girl.name                  #实例的属性

    运行结果:

    $ python 20701.py 
    the person's name is:  wangguniang
    wangguniang is white
    ------
    wangguniang
  • 相关阅读:
    idea 配置mapper.xml代码提示
    vue配置请求转发解决跨域问题
    MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded
    判断链表是否有环(Java实现)
    Java实现链表反转(借助栈实现)
    IHS代理遇到404的问题
    麒峰可视化表单设计器vue版本
    2021.5.30发布内容
    表单常见问题说明
    排序算法与查找算法在项目中的实际应用
  • 原文地址:https://www.cnblogs.com/usec/p/7525709.html
Copyright © 2011-2022 走看看