胖蔡
2020年06月10日胖蔡Pythonpython,语法基础801次阅读

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作为方法的第一个参数的名称