Python基础语法(注释、关键字、输入输出)

举报
DS小龙哥 发表于 2022/06/27 14:00:03 2022/06/27
【摘要】 任何一种编程语言都有自己的一套语法,编译器或者解释器负责把符合语法的程序代码转换成CPU能够执行的机器码然后执行,Python也不例外,也有自己的语法规则和解析器。这篇文章介绍python基本的语法,完成简单的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编码。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。