Python基础语法(注释、关键字、输入输出)
Python基础语法学习
3.1 编写第一个Python程序
任何一种编程语言都有自己的一套语法,编译器或者解释器负责把符合语法的程序代码转换成CPU能够执行的机器码然后执行,Python也不例外,也有自己的语法规则和解析器。
Python程序是大小写敏感的,如果写错了大小写,程序会报错。
python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {}
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数, 缩进的空格数不一致,会导致运行错误。
一份Python代码示例:
#!/usr/bin/python3
print("hello Python");
if True:
print ("True")
else:
print ("False")
缩进的空格数不一致,下面的代码运行会报错:
#!/usr/bin/python3
print("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中单行注释以#开头,例如:
#这是一个注释
print("hello world!")
多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如:
1、单引号(''')
#!/usr/bin/python3
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello, World!")
2、双引号(""")
#!/usr/bin/python3
"""
这是多行注释,用三个双引号
这是多行注释,用三个双引号
这是多行注释,用三个双引号
"""
print("Hello, World!")
3.3 python输出功能基本语法:print()
print(' '),print(" "): 在引号内加入指定字符串,即可输出指定文字。
区别只是单引号内特定字符需要使用转义字符"\",而双引号则不需要。
当然,双引号中包含双引号需要用转义字符,单引号中则不需要。
例如: print('hello world!'),运行后输出的便是hello world!
示例:
#!/usr/bin/python3
print("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/python3
print("欢迎","学习","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/python3
print(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/python3
print("hello ")
print("world")
print("hello ",end="")
print("world")
输出结果:
hello
world
hello world
3.4 python输入功能基本语法:input()
Python提供了input()内置函数从标准输入读入一行文本,默认的标准输入是键盘。
input 可以接收一个Python表达式作为输入,并将运算结果返回。
示例:
#!/usr/bin/python3
str = input("请输入:")
print ("你输入的内容是: ", str)
输出结果:
请输入:欢迎学习python编程 你输入的内容是: 欢迎学习python编程 |
当运行代码并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。
输入完成后,刚才输入的内容就存放到str 变量里了。
input()函数还支持显示一个字符串来提示用户,这样,用户就可以根据提示输入指定的内容:
示例:
#!/usr/bin/python3
name = input("请输入你的名字:")
print ("你的名字是:", name)
输出结果:
请输入你的名字:Python 你的名字是: Python |
在python3.0以后的版本中,input接收的是字符串;input()对输入的数据都是按照字符串方式处理,如果想要得到其他类型的数据,需要对类型做转换:
示例:
#!/usr/bin/python3
my_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/python3
import keyword
print(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/python3
str="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/python3
if 123>456: #以冒号表示if语句的代码块
print("123>456") #print代码需要缩进,不能与if语句一样对齐顶格,否则会报错
else: #以冒号表示else语句的代码块
print("123<456") #print代码需要缩进
图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 字符串。
图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编码。
- 点赞
- 收藏
- 关注作者
评论(0)