Python3入门指南之基础语法

3、Python基础语法学习

3.1 编写第一个Python程序

任何一种编程语言都有本身的一套语法,编译器或者解释器负责把符合语法的程序代码转换成CPU可以执行的机器码而后执行,Python也不例外,也有本身的语法规则和解析器。python

Python程序是大小写敏感的,若是写错了大小写,程序会报错。linux

python最具特点的就是使用缩进来表示代码块,不须要使用大括号 {}编程

缩进的空格数是可变的,可是同一个代码块的语句必须包含相同的缩进空格数, 缩进的空格数不一致,会致使运行错误。浏览器

一份Python代码示例:服务器

 

  •  
  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3print("hello Python");if True: print ("True")else: print ("False")

 

缩进的空格数不一致,下面的代码运行会报错:async

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3print("hello Python");if True:    print ("True")else:print ("False")    #此处代码块没有与上面的代码块对齐/*运行报错提示:PS C:\Users\11266> & C:/Users/11266/AppData/Local/Programs/Python/Python38-32/python.exe d:/linux-share-dir/Python/python_code.py  File "d:/linux-share-dir/Python/python_code.py", line 7 print ("False")     ^IndentationError: expected an indented block*/

 

3.2 Python中单行与多行注释语法

确保对模块, 函数, 方法和行内注释使用正确的风格编程语言

Python中的注释有单行注释和多行注释。编辑器

Python中单行注释以#开头,例如:ide

 

  •  
  •  
#这是一个注释print("hello world!")

 

多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如:函数

一、单引号(''')

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3 '''这是多行注释,用三个单引号这是多行注释,用三个单引号 这是多行注释,用三个单引号'''print("Hello, World!")

 

二、双引号(""")

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3 """这是多行注释,用三个双引号这是多行注释,用三个双引号 这是多行注释,用三个双引号"""print("Hello, World!")

 

3.3 python输出功能基本语法:print()

print(' '),print(" "): 在引号内加入指定字符串,便可输出指定文字。

区别只是单引号内特定字符须要使用转义字符"\",而双引号则不须要。

固然,双引号中包含双引号须要用转义字符,单引号中则不须要。

例如:  print('hello world!'),运行后输出的即是hello world!

示例:

 

  •  
  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3print("hello world!")print('hello world!')print('hello \'world!\'')print("hello 'world!'")print("hello \"world!\"")

 

输出结果:

hello world!

hello world!

hello 'world!'

hello 'world!'

hello "world!"

 

print函数也能够接受多个字符串,用逗号“,”隔开,就能够连成一串输出。

使用逗号的地方输出后会变成空格。

示例:

 

  •  
  •  
  •  
#!/usr/bin/python3print("欢迎","学习","Python编程")print('欢迎','学习','Python编程')

 

输出结果:

欢迎 学习 Python编程

欢迎 学习 Python编程

print也能够打印整数,计算结果。

 

  •  
print(2019),print(100+200)

 

输出结果:

2019

300

print也能够进行多行输出。(三重单引号或三重双引号''',""")

#!/usr/bin/python3

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
print('''欢迎学习Python编程''')print("""欢迎学习Python编程""")

 

输出结果:

欢迎

学习

Python

编程

欢迎

学习

Python

编程

 

print()也能够打印整数或者计算结果:

示例:

 

  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3print(200+300)print("200+300=",200+300)print("100*2=",100*2)print("(10+2)*4-10=",(10+2)*4-10)

 

输出结果:

500

200+300= 500

100*2= 200

(10+2)*4-10= 38

 

print 默认输出是换行的,若是要实现不换行须要在变量末尾加上 end=""

示例:

 

  •  
  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3print("hello ")print("world")print("hello ",end="")print("world")

 

 

输出结果:

hello

world

hello world

 

3.4 python输入功能基本语法:input()

Python提供了input()内置函数从标准输入读入一行文本,默认的标准输入是键盘。

input 能够接收一个Python表达式做为输入,并将运算结果返回。

示例:

 

  •  
  •  
  •  
#!/usr/bin/python3str = input("请输入:")print ("你输入的内容是: ", str)

 

输出结果:

请输入:欢迎学习python编程

你输入的内容是:  欢迎学习python编程

当运行代码并按下回车后,Python交互式命令行就在等待你的输入了。这时,你能够输入任意字符,而后按回车后完成输入。

输入完成后,刚才输入的内容就存放到str 变量里了。

 

input()函数还支持显示一个字符串来提示用户,这样,用户就能够根据提示输入指定的内容:

示例:

 

  •  
  •  
  •  
#!/usr/bin/python3name = input("请输入你的名字:")print ("你的名字是:", name)

 

输出结果:

请输入你的名字:Python

你的名字是: Python

 

在python3.0之后的版本中,input接收的是字符串;input()对输入的数据都是按照字符串方式处理,若是想要获得其余类型的数据,须要对类型作转换:

示例:

 

  •  
  •  
  •  
  •  
#!/usr/bin/python3my_float = float(input('请输入一个浮点数:'))my_int = int(input('请输入一个整数:'))my_str = input('请输入一个字符串:')

 

3.5 Python标识符与关键字

标识符(变量的名字)是电脑语言中容许做为名字的有效字符串集合。其中,有一部分是关键字,构成语言的标识符;这样的标识符是不能作它用的标识符的,不然会引发语法错误。

标识符的定义规则:

(1) 第一个字符必须是字母表中字母或下划线_

注意: 下划线对解释器有特殊的意义, 对于普通的变量应当避免下划线开头的命名风格。

(2) 标识符的其余的部分由字母、数字和下划线组成

(3) 标识符对大小写敏感。

(4) 在Python 3 中,能够用中文做为变量名,非 ASCII 标识符也是容许。

  (5)  Python的关键字不能当作标识符

 

任何语言的关键字应该保持相对的稳定,可是由于 Python 是一门不断成长和进化的语言,Python 的标准库提供了一个 keyword 模块,能够输出当前版本的全部关键字:

 

  •  
  •  
  •  
#!/usr/bin/python3import keywordprint(keyword.kwlist)

 

 

输出结果以下:

 ['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']

 

示例代码:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3str="hello world"data=6666变量="中国" #使用中文当作变量名称print("str=",str) print("data=",data)print("变量=",变量)

 

 

输出的结果:

str= hello world

data= 6666

变量= 中国

3.6 Python代码缩进规则

和其它程序设计语言(如 Java、C 语言)采用大括号“{}”分隔代码块不一样,Python 采用代码缩进和冒号( : )来区分代码块之间的层次。

在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。

Python 中实现对代码的缩进,可使用空格或者 Tab 键实现。但不管是手动敲空格,仍是使用 Tab 键,一般状况下都是采用 4 个空格长度做为一个缩进量(默认状况下,一个 Tab 键就表示 4 个空格)。

示例代码:

 

  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3if 123>456: #以冒号表示if语句的代码块 print("123>456") #print代码须要缩进,不能与if语句同样对齐顶格,不然会报错else: #以冒号表示else语句的代码块 print("123<456") #print代码须要缩进

 

 

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

图3-6-1

3.7 文本编码

由于目前的计算机CPU只能处理数字,要处理文本,就须要把文本转换为数字才能处理。

最先的计算机在设计时采用8个比特(bit)做为一个字节(byte),一个字节能表示的最大的整数就是255(二进制11111111=十进制255),若是要表示更大的整数,就必须用更多的字节。

好比:两个字节能够表示的最大整数是65535,4个字节能够表示的最大整数是4294967295。

因为计算机是美国人发明的,最先只有127个字符被编码到计算机里,包含大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,好比大写字母A的编码是65,小写字母z的编码是122。

可是要处理中文显然一个字节是不够的,至少须要两个字节,并且还不能和ASCII编码冲突,因此,中国制定了GB2312编码,用来把中文编进去。

能够想获得的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。

所以,就诞生了Unicode编码。Unicode把全部语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode标准也在不断发展,但最经常使用的是用两个字节表示一个字符(若是要用到很是偏僻的字符,就须要4个字节)。现代操做系统和大多数编程语言都直接支持Unicode。

ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码一般是2个字节。

字母A用ASCII编码是十进制的65,二进制的01000001;

字符0用ASCII编码是十进制的48,二进制的00110000,注意字符'0'和整数0是不一样的;

汉字中已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。

若是把ASCII编码的A用Unicode编码,只须要在前面补0就能够,所以,A的Unicode编码是00000000 01000001。

若是咱们把全部文本编码都统一成Unicode编码,乱码问题就消失了;可是,若是你写的文本基本上所有是英文的话,用Unicode编码比ASCII编码须要多一倍的存储空间,在存储和传输上就十分不划算。

因此,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。

UTF-8编码把一个Unicode字符根据不一样的数字大小编码成1-6个字节,经常使用的英文字母被编码成1个字节,汉字一般是3个字节,只有很生僻的字符才会被编码成4-6个字节。若是要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。

字符

ASCII

Unicode

UTF-8

A

01000001

00000000 01000001

01000001

x

01001110 00101101

11100100 10111000 10101101

从上面的表格能够发现, ASCII编码实际上能够被当作是UTF-8编码的一部分,因此,大量只支持ASCII编码的历史遗留软件能够在UTF-8编码下继续工做。

目前在计算机内存中,统一使用Unicode编码,当须要保存到硬盘或者须要传输的时候,就转换为UTF-8编码。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器。

默认状况下,Python 3源码文件都是以 UTF-8 编码,全部字符串都是 unicode 字符串。

watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=

图3-7-1

代码里也能够为源码文件指定不一样的编码。

好比:定义容许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白罗斯语、马其顿语、俄语、塞尔维亚语。

# -*- coding: cp-1252 -*-

 

定义源代码使用UTF-8编码:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
#!/usr/bin/python3# -*- coding: utf-8 -*-if 123>456: #以冒号表示if语句的代码块 print("123大于456") #print代码须要缩进,不能与if语句同样对齐顶格,不然会报错 print("hello world")else: #以冒号表示else语句的代码块 print("123小于456") #print代码须要缩进

 

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释。

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,不然,你在源代码中写的中文输出可能会有乱码。

声明了UTF-8编码并不意味着你的.py文件就是UTF-8编码的,必须而且要确保文本编辑器正在使用UTF-8编码。

相关文章
相关标签/搜索