美文网首页
第2章 - 基础入门.md

第2章 - 基础入门.md

作者: vwFisher | 来源:发表于2019-05-19 19:06 被阅读0次

    第2章 基础入门

    2.1 Python 中文编码

    Python2

    Python2 文件如果未指定编码,在执行过程会出现报错:

      File "test.py", line 2
    SyntaxError: Non-ASCII character '\xe4' in file test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
    

    Python2 中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。

    解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 就行了

    注意:#coding=utf-8 的 = 号两边不要空格。

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    print "你好,世界";
    

    Python3

    Python3.X 源码文件默认使用utf-8编码,所以可以正常解析中文,无需指定 UTF-8 编码。

    如果你使用编辑器,同时需要设置 py 文件存储的格式为 UTF-8,否则会出现类似以下错误信息:

    SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xc4 in position 0:
    invalid continuation byte
    

    Pycharm 设置步骤:
    进入 file > Settings,在输入框搜索 encoding。
    找到 Editor > File encodings,将 IDE Encoding 和 Project Encoding 设置为utf-8。

    2.2 输入和输出

    2.2.1 输出

    用print()在括号中加上字符串,就可以向屏幕上输出指定的文字。比如输出'hello, world'

    print()函数也可以接受多个字符串,用逗号","隔开,就可以连成一串输出:

    >>> print('hello, world')
    >>> print('The quick brown fox', 'jumps over', 'the lazy dog')
    The quick brown fox jumps over the lazy dog
    

    print()会依次打印每个字符串,遇到逗号“,”会输出一个空格,因此,输出的字符串是这样拼起来的:

    print()也可以打印整数,或者计算结果:

    >>> print(300)
    300
    >>> print(100 + 200)
    300
    >>> print('100 + 200 =', 100 + 200)
    100 + 200 = 300
    

    注意,对于100 + 200,Python解释器自动计算出结果300,但是,'100 + 200 ='是字符串而非数学公式,Python把它视为字符串,请自行解释上述打印结果。

    2.2.2 输入

    现在,你已经可以用print()输出你想要的结果了。但是,如果要让用户从电脑输入一些字符怎么办?

    Python提供了一个input(),可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:

    当你输入name = input()并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。

    输入完成后,不会有任何提示,Python交互式命令行又回到>>>状态了。那我们刚才输入的内容到哪去了?答案是存放到name变量里了。可以直接输入name查看变量内容:

    >>> name = input()
    Michael
    >>> name
    'Michael'
    

    有了输入和输出,我们就可以把上次打印'hello, world'的程序改成有点意义的程序了:

    name = input('请输入名字:')
    print('hello,', name)
    

    运行上面的程序,第一行代码会让用户输入任意字符作为自己的名字,然后存入name变量中;第二行代码会根据用户的名字向用户说hello
    比如输入Michael,input() 可以接受字符串来作为提示用户信息

    C:\Workspace> python hello.py
    请输入名字:Michael
    hello, Michael
    

    2.3 import 与 from...import

    1. 在 python 用 import 或者 from...import 来导入相应的模块。
    2. 将整个模块(somemodule)导入,格式为: import somemodule
    3. 从某个模块中导入某个函数,格式为: from somemodule import somefunction
    4. 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
    5. 将某个模块中的全部函数导入,格式为: from somemodule import *

    2.4 注释

    # 这是一个单行注释
    
    '''
    这是 单引号 多行注视
    '''
    
    """
    这是 双引号 多行注视
    """
    

    2.5 Python3 中有6种标准的数据类型

    数值 字符串 列表 元组 集合 字典
    Number String List Tuple Sets Dictionary

    其中

    1. 不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组)
    2. 可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)

    注意:

    1. Python程序是大小写敏感的,如果写错了大小写,程序会报错。
    2. Python使用缩进来组织代码块,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。

    2.6 变量

    在Python中,变量没有明显的变量声明,而且类型不是固定的。只需要用等号(=)就可以把任意数据类型赋值给变量,如:
    xiaohong='Xiao Hong'

    而且可以重复赋值,并且允许不同类型。而当不知道变量为什么类型时,可以使用type()函数

    >>> type(10)
    <class 'int'>
    >>> type(10.0)
    <class 'float'>
    >>> type('str')
    <class 'str'>
    

    变量名称,尽量取有意义的变量名,不能使用关键字作为变量名

    2.7 关键字

    关键字
    False True None and as assert break
    class continue def del elif else except
    finally for from global if import in
    nonlocal lambda is not or pass raise
    return try while with yield

    2.8 常量

    所谓常量,就是不能变的,比如π

    Python 中有两个比较常见的常量,即 PI 和 E

    1. PI:数字常量pi(圆周率,一般以π表示)
    2. E:数字常量e,即自然对数`

    2.9 类型转换

    函数 描述
    int(x [,base]) 将x转换为一个整数
    float(x) 将x转换到一个浮点数
    complex(real [,imag]) 创建一个复数
    str(x) 将对象 x 转换为字符串
    repr(x) 将对象 x 转换为表达式字符串
    eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
    tuple(s) 将序列 s 转换为一个元组
    list(s) 将序列 s 转换为一个列表
    set(s) 转换为可变集合
    dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。
    frozenset(s) 转换为不可变集合
    chr(x) 将一个整数转换为一个字符
    ord(x) 将一个字符转换为它的整数值
    hex(x) 将一个整数转换为一个十六进制字符串
    oct(x) 将一个整数转换为一个八进制字符串

    2.10 type/isinstance 函数

    isinstance 和 type 的区别在于:

    1. type()不会认为子类是一种父类类型。
    2. isinstance()会认为子类是一种父类类型。
    print(type(1))
    print(isinstance(1, int))
    
    print(type(1.1))
    print(isinstance(1.1, float))
    
    print(type((10 + 0j)))
    print(isinstance(10 + 0j, complex))
    
    print(type('Hello'))
    print(isinstance('Hello', str))
    

    2.11 del 方法

    可以使用del语句删除一些对象引用。del语句的语法是:

    del var1[,var2[,var3[....,varN]]]
    您可以通过使用del语句删除单个或多个对象。例如:
    
    del var
    del var_a, var_b
    

    2.12 语句

    2.12.1 if...else

    if 条件:
        执行块
    elif 条件:
        执行块
    else:
        执行块
    

    2.12.2 循环

    while

    while 条件:
        代码执行块
    else:
        代码执行块
    

    for

    for n in m
        代码执行块
    

    for循环处理字典

    for k,v in dict.items()
        代码执行块
    

    2.12.3 语句控制

    跳出循环

    break # 中断循环
    continue # 中断当次循环,进入下一次循环
    

    空语句pass

    pass # pass是空语句,作用是保持程序结构的完整性。不做任何事情,只是占位语句。
    

    2.12.4 assert

    1. assert 条件, "errMsg"
    2. 如果条件为假时,则输出错误信息(抛异常)

    相关文章

      网友评论

          本文标题:第2章 - 基础入门.md

          本文链接:https://www.haomeiwen.com/subject/sqwqzqtx.html