一章:Python基础语法(上)
Beautiful is better than ugly.---The Zen of Python
一、计算机语言
计算机语言的种类很多,通常分为三大类,分别是高级语言、汇编语言、机器语言。
机器语言(machine language): 是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。
汇编语言(assembly language): 是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。通常被应用在底层,硬件操作和高要求的程序优化的场合.
高级语言(High-level programming language): 相对于机器语言而言。是高度封装了的编程语言,与低级语言相对。它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的Java,C,C++,C#,pascal,Python,Lisp,Go等等....
二、Python语言基础概述
2.1 Python的文件类型:
Python常用的文件类型有三种:
(1)源代码文件:文件通常以.py为扩展名,由Python程序解释,不需要编译;
(2)字节代码文件:文件通常以.pyc为扩展名,是由Py源文件编译成的二进制字节码文件,由Python加载执行,执行速度快,能够隐藏源码。
(3)优化代码文件:文件通常以.pyo为扩展名,是优化后编译后的程序,也是二进制文件,适用于嵌入式操作系统。
2.2 Python的编程运行方式:
Python程序可以在交互模式编程或脚本编程模式下运行:
(1)以交互模式运行:启动Python自带的IDLE或在命令提示符下运行Python,进入Python环境,例如:
使用Python自带的IDLE
$ ipython Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] Type 'copyright', 'credits' or 'license' for more information IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help. IIn [1]: print("Hello Python") Hello Python In [2]:
使用命令提示符运行Python
$ python Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" or "license" for more information. >>> print("Hello Python") Hello Python
(2)以脚本方式运行:对于大量代码的开发,经常采用以脚本的方式运行,即利用编辑器输入Python代码,保存成*.py文件,然后运行。例如我们后面经常使用的PyCharm工具。
2.4 Python编码声明:
Python安装后,系统默认其源文件为UTF-8编码,多数情况,通过编辑器编写的Python代码默认保存UTF-8编码脚本文件,通常通过Python执行该文件不会出错,但是如果编辑器不支持UTF-8编码,或者使用了其他的编码格式,Python则无法自动识别脚本文件,就会造成程序错误,这时候就需要对Python脚本文件进行编码声明,通常使用的编码声明格式如下:
# -*- coding: utf-8 -*-
通过上述声明,源文件中的所有字符都会被当成coding指代的UTF-8编码支持,这不是唯一的声明格式,还有其他的声明格式如:“#coding:utf-8”和“#coding=utf-8”都是可以的.
在编写Python脚本时除了要声明编码外,还需要注意声明路径。路径的声明格式如下:
#!e:/Python/Python36
三、 Python程序基本结构
Python程序结构中涉及代码块的:注释、行与缩进、语句换行.
3.1 注释
Python中注释分为单行注释和多行注释,在运行程序时会忽略被注释的内容。单行注释用“ # ”表示注释开始,“ # ” 之后的内容不会被执行。单行注释可以单独占一行。可以放在语句的末尾部分,示例如下:
# 这是第一个注释 print("Hello Python") # 这是第二个注释
多行注释是用3个英文的单引号“ ''' ”或者双引号“ """ ”作为注释的开始和结束符号。示例如下:
这是单引号注释:
''' 内容:关于Python的多行注释之单引号注释 作者:雨霓同学 创作时间:2019年5月31日 '''
这是多引号注释:
""" 内容:关于Python的多行注释之双引号注释 作者:雨霓同学 创作时间:2019年5月31日 """
3.2 行与缩进
3.2.1 使用多行语句:
多行语句一般分为两种:一条语句多行;一行多条语句。
一条语句多行的情况一般是语句太长,一行写完一条语句会显得不美观,使用反斜杠()可以实现一条长语句换行,也不会被机器识别成多条语句,示例如下:
>>> total= "name"+ ... "age"+ ... "nember" >>> print(total) nameagenember
在Python中,[ ]、{ }、()、里面的多行语句在换行时不需要使用反斜杠,可以使用“ ,”进行换行,示例如下:
>>> total=["name", ... "age", ... "number"] >>> print(total) ['name', 'age', 'number']
一行多条语句,通常在短语句中应用的比较广泛。使用分号“ ; ”可对多条短语句实现隔离,从而在同一行实现多条语句,示例如下:
name="雨霓";age="22";number="001" >>> print(name,age,number) 雨霓 22 001
3.2.2 代码缩进:
在Python中以缩进的方式来识别标识代码块,不需要使用大括号“{ }”,代码看起来会更加简洁明了。
同一个代码块必须保证相同的缩进空格数,否则将会报错,至于缩进的空格数,Python中并没有硬性要求,只需保证空格数一致就可以,示例如下:
if True: print("相同的行缩进") else: print("行缩进空格不同") if True: print("相同的行缩进") else: print("行缩进空格不同")
最后一行语句缩进的空格数与其他行不一致,会导致代码运行出错。
if True: print("相同的行缩进") else: print("行缩进空格不同") print("行缩进空格不同")
报错信息:
File "C:/Users/Mortal/PycharmProjects/Python_Note/day_01.py", line 5
print("行缩进空格不同")
^
IndentationError: unindent does not match any outer indentation leve1
3.3 命令标识符与关键字
3.3.1 命令标识符命名
标识符在机器语言中是一个被允许作为名字的有效字符串。Python 中的标识符主要用在变量、函数、类、模块、对象等的命名中。每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样。在Python中,变量命名需要遵循以下这些必须遵守硬性规则和强烈建议遵守的非硬性规则。
1.标识符可以由字母、数字和下划线组成。
2.标识符不能以数字开头。以下划线开头的标识符具有特殊的意义,使用时需要特别注意。
① 以单下划线开头(如_foo)的标识符代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”导入。
② 以双下划线开头(如__foo)的标识符代表类的私有成员。
③ 以双下划线开头和结尾(如__foo__)的标识符是Python 特殊方法专用的标识,如__init__()代表类的构造函数。
3.标识符字母区分大小写,例如Abc 与abc 是两个标识符。
4.标识符禁止使用Python 中的关键字
给变量(事实上应该是所有的标识符)命名时做到见名知意也是非常重要的。
3.3.2 关键字
要查看某字符串是否为关键字,可以使用iskeyword 函数。此外,使用kwlist 函数可以查看所有的关键字;示例如下:
import keyword ceshi = keyword.iskeyword("and") # 查看and 是否为保留字 key=keyword.kwlist # 查看Python 中的所有保留字 print(ceshi,key)
这是所有的关键字:
True ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
3.3 输入和输出
print()函数将括号内的字符串显示在屏幕上。
代码行print('Hello world!')表示“打印出字符串'Hello world!'的文本”。Python执行到这行时,你告诉Python 调用print()函数,并将字符串“传递”给函数。传递给函数的值称为“参数”。请注意,引号没有打印在屏幕上。它们只是表示字符串的起止,不是字符串的一部分。
也可以用这个函数在屏幕上打印出空行,只要调用print()就可以了,括号内没有任何东西。
print('Hello world!') print( ) # 输入空行 print('What is your name?') # ask for their name
函数等待用户在键盘上输入一些文本,并按下回车键。
这个函数求值为一个字符串,即用户输入的文本。前面的代码行将这个字符串赋给变量name。你可以认为input()函数调用是一个表达式,它求值为用户输入的任何字符串。如果用户输入'bilibili',那么该表达式就求值为name = 'bilibili'。
name=input() bilibili >>> name 'bilibili'