• Python语法基础


    python属于解释型语言。根据python的书写顺序来介绍,python作为一个脚本语言可以直接通过支持python环境的terminal通过命令进入python编译环境,也可以通过编写后缀为.py的py执行文件(后缀并非一定,也可没有后缀)实现编译运行。

    python基础语法分如下几个部分介绍:python文件结构,python注释,python关键字,python变量等。

    python文件结构

    和一般的语言类似,python文件也被区分成几个较为明显的部分,每个部分都负责自己需要做的工作,从而达到完美编译运行python文件的目的。简单区分可以将python分为如下三个部分:

    • Executable Python Scripts 和 magic comment

    可执行的脚本(Executable Python Scripts),主要是使用在类BSD的Unix系统中,为了让python脚本可以直接运行而非通过python命令制定文件运行(如同shell脚本一样直接运行),需要添加一行声明注释,并将py文件添加可执行权限(x),即可直接运行该py文件,其声明如下(该行存在的话一般位于py首行):

    #!/usr/bin/env python
    

    魔法注释(magic comment),主要是用于对python文件的源码进行编译的编码设置,默认采用的ASCII编码,若需要声明成utf-8或其他类型编码则需要添加此注释。基本格式如下:

    # -*- coding: utf-8 -*-

    该行在如上对py的声明不存在时放在首行,否则一般放在第二行.一般完整的写法如下:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    • 导入模块

    对于py来说,我们需要使用系统或者三方的某些功能的话,就需要让其功能模块和该py文件建立联系或者说是一个简易的依赖引用的关系。和其他语言类型,python可以使用import关键字引入需要使用的模块,同时可以通过”,”将多个模块同时导入。除此之外,python还可以通过from关键字导入模块的部分数据(变量,方法等).

    需要注意的是使用import导入的部分需要通过导入的模块名应用获取数据,而通过from导入的数据可以直接如同在模块内部使用一样直接调用,如下示例:

    #import导入格式
    import sys #导入单个模块
    import sys,math,cmath #导入多个模块
    
    #from导入格式
    import sys import * #导入所有的数据
    import sys import path #导入sys中的变量path
    
    
    
    #import 导入的使用
    import math
    
    if __name__ =="":
        number=45.67
        print "number去除小数:",math.floor(number)
    
    
    
    #from 导入使用
    from math import floor
    
    if __name__ =="":
        number=45.67
        print "number去除小数:",floor(number)
    

    如上,“#”为python 中注释开始符号,稍后会详细介绍.使用from导入模块时需要特别注意避免重复的问题。

    • 代码部分

    代码部分放在如上两个部分的底部,python代码的格式是高度的敏感代码的格式的,通过空格来对代码的层次进行划分,通过代码的缩排来区分代码块。一般的对于执行一个py文件,代码通过顺序执行代码,一般的我们可以通过判断python的自有变量“name”来判断该py当前的运行环境是属于主程序运行还是输入导入的模块(主程序运行的话该变量值为固定”main“,若是导入的模块的话,其值为该模块的名字),如:

    #!/usr/bin/env python
    # -*-encoding:utf-8 -*-
    import sys
    
    def main():
        pass
    
    
    if __name__ == '__main__':
      main() #通过这里控制模块的测试代码.
    

    Python注释和标准输入输出

    python中的注释通过”#”实现,python中以“#”号开头的右边的所有的内容都会被忽略,于代码的运行不产生任何影响。如下:

    name="hfcai"  #用户名
    

    python中的标准输入输出有多种方式,python的输出可以分为三种种方式:一个是标准化的通过print打印输出,也可以是一个表达式返回输入,或者通过文本写入的方式输入.

    比较简单的是表达式返回输出和print语句(也可以理解为方法)打印输入。但有所不同的是,表达式返回输入一般存在于python执行环境,而print打印输出输入标准的输出接口返回,比较明显的是,表达式类型的输出只有我们通过控制台进入python环境才会输出,而单独运行python文件并不会产生输出内容.如下:

    #表达式输出
    hfcai@ubuntu:~/Desktop$ python
    Python 2.7.6 (default, Oct 26 2016, 20:30:19)
    [GCC 4.8.4] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> "test"
    'test'
    >>>
    
    
    
    #print输出
    
    #!/usr/bin/env python
    # -*- encoding:utf-8 -*-
    
    print "test"
    
    #执行
    hfcai@ubuntu:~/Desktop$python test.py
    test
    

    python 的输入方式有很多中,常见的有通过系统的输入函数提示人工输入类似于C中的scanf函数,还有通过运行py文件附带参数输入,读取文件等方式,如下介绍系统输入函数。使用如下:

    #input输入
    age=input("How old are you ?")
    print "your are %s years old." % age
    
    #结果
    
    How old are you ?12
    your are 12 years old.
    
    How old are you ?12*2
    your are 24 years old.
    
    
    How old are you ?"abc"
    your are abc years old.
    
    
    How old are you ?abc
    Traceback (most recent call last):
      File "/home/hfcai/Projects/PythonProjects/pythonNotes/exercises/basics/basics_struct.md.py", line 13, in <module>
        age = input("How old are you ?")
      File "<string>", line 1, in <module>
    NameError: name 'abc' is not defined
    
    Process finished with exit code 1
    
    
    
    
    #raw_input输入
    raw_str=raw_input("get raw_input:")
    print raw_str
    
    #结果
    get raw_input:23+76
    23+76
    
    get raw_input:abc
    abc
    
    
    
    

    如上,可以看出,raw_input将输入内容看成string,返回输入所有内容,input将输入内容识别为表达式,当输入字符串的话则需要输入字符串的定义。

    Python 变量

    python中可以简单的将基本变量类型非为数字类型(包括int,float等)和字符串类型,python中对于变量的赋值较为简单,并不需要申明变量的类型,python会自动识别,变量赋值语句如下:

    param=1
    param1=1.9
    param2="character."
    
    • 数字

    python中支持浮点型数据,整数和浮点型数据的计算会被转换为浮点型

    >>> print 1.2*2
    2.4
    
    • 字符串
      python 中的字符串可以通过单引号’test’,双引号“test”,或者三对单引号或三对双引号跨行表示。
    
    a='Traceback a'
    b="hacker"
    c='''
    name:hfcai
    sex:man
    age:25
    '''
    

    python 关键字

    python关键字可以通过导入python中的keyword模块查看,如下:

    import keyword
    print keyword.kwlist
    
    
    #结果
    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

    列表、元组、字典

    list,tupple,dict这是python中较为常见的数据集合,每种的使用场景有差异不同

    • list(列表)

    列表是一组有序项目的集合。可变的数据类型,以方括号“[]”表示的数据集合,不同成员以“,”分隔。列表中可以包含任何数据类型(包括列表等数据类型)。如下:

    list = ['testa', 'bbb', 123433, 40.6]
       a = ['test', 'a', 999]
    
       print list
       list[3] = 3
       a.append("bb") #追加一个变量
       a.pop()     #移除地一个变量
       a.count("a") #统计变量出现的次数
       list.extend(a) #追加列表
       print list[2:3]  # 分片操作
       index=list.index(a) #检索位置
       a.insert(2,12) #向‘2’位置添加一个参数12
       print list + a
       print list * 2
    
    
    • tupple(元组)

    元组是由一组有序不可变集合。以“()”表示的数据集合,其余特性基本与列表一致。

    #tupple
    tuple = ('tupple top',123,23.45,'tupple end')
    t2 = (123.4,45,'tt',109)
    print tuple
    print t2
    print  tuple[:4]
    
    #tuple[3]=3  //该操作无效,元组不允许修改更新
    print tuple * 2
    print tuple+t2
    • dict(字典)

    Dictionary无序(类似与Java中的map,通过key-value方式存储),格式通过{key:value,….}赋值。和json数据格式很相像.

    #dictionary
    dict = {'key1':'value1','key2':23,2:"gg"}
    
    print dict
    #print dict[0] //这种操作是不合法的
    print dict[2]
    print dict.keys()
    print dict.values()
    dict2=dict.copy()
    print dict2
    

    编码风格

    每个语言都有自己的编码风格,为了方便理解,为了统一格式,python的编码风格,官网给了一个标准的编码风格指南PEP 8,如下文python文档中给出的一些指导性的建议:

    • 使用4空格(space)缩进,不使用制表符(Tab键)

    • 尽量保证每行的字符数目不超过79个,有助于阅读

    • 使用空行分离各个部分代码块(类和函数等)

    • 注释尽量单独一行

    • 添加文档描述,文档注解

    • 运算符和符号左右用空格分离

    • 保持名和函数的命名一致:通常是使用驼峰命名法命名类,使用下划线小写字母命名函数和方法。始终使用self作为方法的第一个参数的名称

    Enjoytoday

  • 相关阅读:
    《需求工程——软件建模与分析》阅读笔记03
    第十一周周五
    统计字符串里每个词语的数目
    第十一周周四计划
    for循环创建的a标签,当点击时如何确定点击的是哪一个标签?
    第十周计划周二&周三计划
    第十周周二汇报
    第九周周五小思路
    第九周周五计划&&周四总结
    第九周周四计划&&周三总结
  • 原文地址:https://www.cnblogs.com/amiko/p/7906201.html
Copyright © 2020-2023  润新知