河南师范大学python+学习笔记2 python语言基本语法元素

吃水不忘挖井人
首先对河南师范大学的各位老师们说声谢谢。他们是:
张磊老师、张倩倩老师、刘金金老师、郭凌云老师、李晓艳老师、李志先老师、陶华亭老师、周雪燕老师、王爱菊老师、陈劲松老师、黄晓巧老师、夏辉丽老师

第二章 python语言基本语法元素

2.1 程序的格式框架

2.1.1 缩进
Python语言采用严格的“缩进”来表明程序的格式框架。
缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系。

缩进是Python语言中表明程序框架的唯一手段。

1个缩进 = 4个空格

当表达分支、循环、函数、类等程序含义时,在 if、while、for、def、class等保留字所在完整语句后通过英文冒号(:)结尾并在之后进行缩进, 表明后续代码与紧邻无缩进语句的所属关系。

代码编写中缩进可以用Tab键实现,也可以用4个 空格实现,但两者不可混用。
建议使用4个空格缩 进方式书写代码。 

2.1.2 程序的格式框架
单层缩进
多层缩进

2.1.3 注释

注释是代码中的辅助性文字,会被编译或解释器略去,不被计算机执行,
一般用于程序员对代码的说明。注释的两种方法:
单行注释以#开头 ,可以独占一行也可以从行的中间开始。
多行注释以  ’’’开头和结尾;也可以在每行开始都使用# 

Python程序中的非注释语句将按顺序执行,注释语句将被解释器过滤掉,不被执行。注释一般用于在代码中标明作者和版权信息,或解释代码原理及用途,或通过注释单行代码辅助程序调试。

2.1.4 使用帮助
1)查看内置函数和类型的帮助信息

>>> help(max) 2)
>查看模块中的成员函数信息 
>>> import os 
>>> help(os.fdopen) 
>上例查看os模块中的fdopen成员函数信息 

3)查看整个模块的信息
使用help(模块名)就能查看整个模块的帮助信息。
注意先import导入该模块。
例如:查看math模块方法:

>>> import math 
>>> help(math) 

2.2.1 命名

给变量或其他程序元素关联名称或标识符的过 程称为命名。

Python语言采用大写字母、小写字母、数字、下划线 _和汉字等字符及其组合进行命名,
但名字的首字符不能是 数字,中间不能出现空格,长度没有限制。

注意:标识符对大小写敏感,python和Python是两个不同的名字 。

1、请选出以下不合法的标识符。
A、 PY_2 B、 _py_good
C、 春季 D、 32PPT

正确答案为:D

2.2.2 常量、变量
常量:程序中值不发生改变的元素。
比如常用的数学常数π就是一个常量。
在Python中, 通常用全部大写的常量名表示常量:
PI = 3.14159265359

变量:程序中值发生改变或者可以发生改变的元素。
变量是保存和表示数据值的一种语法元素,
在程序中是用一个变量名表示,变量名的定义必须符合命名规则。
变量,顾名思义,其值是可以改变的,可以通过赋值(使用等号=表达)方式被修改。

例如:

>>> a=99 
>>> a=a+1 
>>> print(a) 
100 
注意:Python语言中变量可以随时命名、随时赋值、 随时使用。 

可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。
例如:

a = 123  #a是整数        
a = 'ABC‘    #a变为字符串        

这种变量本身类型不固定的语言称之为动 态语言,与之对应的是静态语言。

2.2.3 保留字
保留字,也称为关键字,指被编程语言内部定义并 保留使用的标识符。 
程序员编写程序不能定义与保留字相同的标识符。 
每种程序设计语言都有一套保留字,保留字一般用 来构成程序整体框架、表达关键值和具有结构性的 复杂语义等。 
掌握一门编程语言首先要熟记其所对应的保留字。

Python 3.x保留字列表 (35个)

在这里插入图片描述

2.3.1 数据类型概述

Python语言支持多种数据类型,
最简单的包 括数字类型、字符串类型,
略微复杂的包括元 组类型、集合类型、列表类型、字典类型等。

2.3.2 数字类型

表示数字或数值的数据类型称为数字类型,
Python语言提供3种数字类型:整数、浮点数 和复数,分别对应数学中的整数、实数和复数。

一个整数值可以表示为十进制、十六进制、八 进制和二进制等不同进制形式。
十进制: 1010
十六进制: 0x3F2
八进制: 0o1762
二进制: 0b001111110010

一个浮点数可以表示为带有小数点的一般形式, 也可以采用科学计数法表示。
例如:浮点数 123.456,
两种表示方式如下:
一般形式: 123.456
科学计数法: 1.23456e2 
复数类型与数学中的复数相一致,采用a+bj 的形式表示,存在实部和虚部。

2.3.3 字符串

Python语言中,字符串是用两个双引号“ ” 或者单引号‘ ’括起来的一个或多个字符。
Python字符串的两种序号体系

如果字符串长度为L,正向递增需要以最左侧 字符序号为0,向右依次递增,
最右侧字符序 号为L-1; 反向递减序号以最右侧字符序号 为-1,向左依次递减,
最左侧字符序号为-L。 这两种索引字符的方法可以同时使用。

例:

>>>"读书不觉已春深,一寸光阴一寸金。"[1] ‘书’ 
>>>"读书不觉已春深,一寸光阴一寸金。"[-2] ‘金’

可以采用[N: M]格式获取字符串的子串,这个 操作被形象地称为切片。
[N: M]获取字符串中从N到M(但不包含M)间连续的子字符串。
其中N和M为字符串的索引序号,可以混合使 用正向递增序号和反向递减序号。

例:

>>> "对酒当歌,人生几何?"[1:4] ‘酒当歌’ 
>>> "对酒当歌,人生几何?"[5:-3] ‘人生’ 
>>> "对酒当歌,人生几何?"[4:1] ‘’ 
>>> "对酒当歌,人生几何?"[2:2] ‘’ 
>>> "对酒当歌,人生几何?"[-3:5]‘’

可以通过Python提供的len()函数获取字符串的长度,
一个中文字符和一个英文字符的长度 都记为1。
例:

>>> len("对酒当歌,人生几何?“) 10 
>>> len(“Hello World!“)  12 

2.3.4 布尔类型

Python支持布尔类型的数据,布尔类型只有 True和False两种值。
 and 与运算:只有两个布尔值都为 True 时,计算结果 才为True。
 or 或运算:只要有一个布尔值为 True,计算结果就是 True。
 not 非运算:把True变为False,或者把False变为True:

在Python中,布尔类型还可以与其他数据类 型做and、or和not运算,
这时下面的几种情 况会被认为是FALSE:为0的数字,包括0,0.0; 空字符串‘ ’,“”;
表示空值的None;空集合,包括空元组(),空序列[],空字典{};其他 的值都为TRUE。

例:

>>> a = 'python' 
>>> print (a and True) True 
>>> b =‘’ 
>>> print (b or False)  False 

在Python中,逻辑值True和False作为数值, 则分别是整型值1和0参与运算。

>>> x=False 
>>> y=True 
>>> print(1+y) 
2 
>>> print(x+5)  
5 

2.3.5 空值

空值是Python里一个特殊的值,用None表 示。
它不支持任何运算也没有任何内置函数 方法。None和任何其他的数据类型比较永远返回False。
在Python中未指定返回值的 函数会自动返回None。

2.4 程序的语句元素

2.4.1 表达式

 产生或计算新数据值的代码片段称为表达式。 表达式类似数学中的计算公式,
以表达单一功能为 目的,运算后产生运算结果,运算结果的类型由运 算符决定。
 表达式一般由操作数和运算符等构成,这是构 成Python语句的重要部分。

练习

>>> 1024*32 32768 
>>> “千里行”+“始于足下" ‘千里行始于足下’ 
>>> 1024<32 False 

一个表达式可以由一种或多种运算组成。在 一个表达式中出现多种运算时,
将按照运算 符优先级顺序计算并解析各个部分。

2.4.2 赋值语句

Python语言中,= 表示“赋值”,
即将等号右侧的值计算后将结果值赋给左侧变量,
包含 等号(=)的语句称为“赋值语句”

<变量> = <表达式>

>>> a=1024*32 
>>> print(a) 
32768 

 同步赋值语句:同时给多个变量赋值
<变量1>, …, <变量N> = <表达式1>, …, <表达式N>

>>> a,b=1024,32 
>>> x,y=“千里行”,50 
>>> print(x)  
‘千里行’ 
>>> print(b) 
32 

同步赋值的一个应用是互换变量的值。
例:将变量x和y交换。

 采用单个赋值,需要3行语句:
即通过一个临时变量t缓存x的原始值,然后将 y值赋给x,再将x的原始值通过t赋值给y。
 采用同步赋值语句,仅需要一行代码:
x,y=y,x #x和y互换数值

2.4.3 引用

Python程序会经常使用当前程序之外已有的 功能代码,这个过程叫“引用”。
Python语言 使用import保留字引用当前程序以外的功能库,
使用方式如下:

 import <功能库名称>   

引用功能库之后,采用<功能库名称>.<函数名称>()方式调用具体功能。

2.4.4 其他语句
(1) 分支语句

分支语句是控制程序运行的一类重要语句,
它的作用是根据判断条件选择程序执行路径。
分支语句包括:单分支、双分支和多分支。

单分支语句是最简 单的分支语句,使用方式:

if <条件>:
     <语句块> 

 #判断输入整数是否在[0-100]之间  
num = eval(input("请输入一个整数:"))  
if 0<=num<=100 :           
	print("输入整数在0到100之间(含)") 

双分支语句是覆盖单个条件所有路径的一种 分支语句,使用方式如下:

if <条件>:
     <语句块1> 
else:
     <语句块2> 

if num > 100 or num < 0:     
    print("输入整数小于0或大于100")  
else:   
    print("输入整数在0到100之间(含)") 

多分支语句的作用是根据判断条件选择程序执行的某一条路径,
使用方式:

 if <条件1>: 
    <语句块1>
 elif <条件2>:
    <语句块2> 
... 
 else: 
    <语句块N> 

(2)循环语句

控制程序运行,根据判断条件或计数条件确定一 段程序的运行次数。
 遍历循环,基本过程:

 for i in range (<计数值>):
     <表达式1> 

例如:使某一段程序连续运行10次(变量i用于计数)

 for i in range (10): 
    <源代码> 

循环语句有多种类型,例如条件循环,
它的作用是根据判断条件确定一段程序是否再次执行 一次或者多次。
循环语句包括遍历循环和条件循环。
基本过程:

  while <条件1>:
       <语句块1>
 <语句块2> 

  <语句块1> <语句块2> 
1 2 3 4 5 
#输出10到100步长为3的全部整数 
n = 10 
while n < 100:
    print(n, end=“ ")
    n = n + 3 

2.5 基本输入输出函数

Python内置函数

Python解释器提供了68个内置函数,这些函数不需要引用库,可以直接使用。
例如,本节要学习的3个重要的基本输入输出函数。

2.5.1 input() 函数

获得用户输入之前,input()函数可以包含一些提 示性文字 , 无论用户输入什么内容,input()函数的返 回结果均为字符串类型。

<变量> = input(<提示性文字>)  
>>> input("请输入: ") 
请输入: python 'python' 
>>> a=input("请输入: ") 
请输入: 1024.256 
>>> print(a) '1024.256'

2.6 实例解析

2.6.1 源程序的书写风格

——什么样的Python代码是漂亮的?
程序设计语言如同自然语言,好的代码就像文 学作品,不仅达意,更要优美。
——什么是“好”?什么是“优美”?
领悟编程代码优美的过程类似参禅,除了不断 练习,也需要理解一些原则。

Python之禅

Python以函数库的形式内置了一个有趣的文 件,被称为“Python之禅”(The Zen of Python)。
当调用如下一行语句后,会出现一 段有趣的运行结果。

>>>  import this  Python

Python之禅   作者:Tim Peters 

  优美胜于丑陋
  明了胜于隐晦
  简洁胜于复杂
  复杂胜于凌乱
  扁平胜于嵌套
  间隔胜于紧凑
  可读性很重要
  即便假借特例的实用性之名,也不要违背上述规则
  除非你确定需要,任何错误都应该有应对
  当存在多种可能,不要尝试去猜测
  只要你不是Guido,对于问题尽量找一种,最好是唯一明显的解决方案
  做也许好过不做,但不假思索就动手还不如不做
  如果你无法向人描述你的实现方案,那肯定不是一个好方案
  如果实现方案容易解释,可能是个好方案
  命名空间是绝妙的理念,要多运用 

2.6.2 实例解析:倒背如流

计算机程序是机械记忆的高手,下面将编写一段 程序,获得用户输入,逆序将输入内容输出。
该程序的输入和输出实例如下:
 输入:To be or not to be, that’s a question. ——莎士比亚
 输出:亚比士莎—— .noitseuq a s’taht ,eb ot ton ro eb oT

以下给出了一种实现,采用正向递增序号,利用 len()函数将i设为最后一个字符的索引序号,
然后逐次输出至第一个字符。

s = input("请输入一段文本:")
i = len(s)-1
while i>=0:
    print(s(i),end="")
    i = i-1

给出另一种实现,采用反向递减序号,将i首先设置为-1,
直接索引最后一个字符,然后逐次输出至第一个字符。

s = input(“请输入一段文本:”) 
i = -1 
while i >= -1*len(s):
        print(s[i], end="") 
        i = i - 1 

猜你喜欢

转载自blog.csdn.net/qq_41952762/article/details/102861352