Python语言基础

Python中的保留字、标识符、变量、基本数据类型及数据类型间的转换,接下来介绍运算符与表达式,最后介绍通过输入和输出函数进行交互的方法。

2.1 Python语法特点

学习Python需要了解它的语法特点,如注释规则、代码缩进、编码规范等。

2.1.1 注释

在Python中,通常包括3种类型的注释,分别是单行注释、多行注释和中文编码声明注释。

1.单行注释

在Python中,使用“#”作为单行注释的符号。从符号“#”开始直到换行为止,“#”后面所有的内容都作为注释的内容,并被Python编译器忽略。

单行注释可以放在要注释代码的前一行,也可以放在要注释代码的右侧。

第一种形式:# 要求输入身高,单位为m(米),如1.70
height=float(input("请输入您的身高:"))

第二种形式:
height=float(input("请输入您的身高:")) # 要求输入身高,单位为m(米),如1.70

上面两种形式的运行结果是相同的。

说明:在添加注释时,一定要有意义,即注释能充分解释代码的功能及用途。

注意:注释可以出现在代码的任意位置,但是不能分隔关键字和标识符。例如,下面的代码注释是错误的:
height=float(#要求输入身高 input("请输入您的身高:"))

2.多行注释

在Python中,并没有一个单独的多行注释标记,而是将包含在一对三引号('''……''')或者("""……""")之间,并且不属于任何语句的内容都可视为注释,这样的代码将被解释器忽略。由于这样的代码可以分为多行编写,所以也称为多行注释。

语法格式如下:

'''
注释内容1
注释内容2
……

'''
或者

"""
注释内容1
注释内容2
……

"""

多行注释通常用来为Python文件、模块、类或者函数等添加版权、功能等信息。

在Python中,三引号('''……''')或者("""……""")是字符串定界符。如果三引号作为语句的一部分出现时,就不是注释,而是字符串,这一点要注意区分。

3.中文编码声明注释
在Python中,还提供了一种特殊的中文编码声明注释,该注释的出现主要是为了解决Python 2.x中不支持直接写中文的问题。虽然在Python 3.x中,该问题已经不存在了。但是为了规范页面的编码,同时方便其他程序员及时了解文件所用的编码,建议在文件开始加上中文编码声明注释。

语法格式如下:
# -*- coding:编码 -*-

或者
# coding=编码
在上面的语法中,编码为文件所使用的字符编码类型,如果采用UTF-8编码,则设置为utf-8;如果采用GBK编码,则设置为gbk或cp936。

例如,指定编码为UTF-8,可以使用下面的中文编码声明注释:# -*- coding:utf-8 -*-说明:在上面的代码中,“-*-”没有特殊的作用,只是为了美观才加上的。所以上面的代码也可以使用“# coding:utf-8”代替。

另外,下面的代码也是正确的中文编码声明注释:

# coding=utf-8

2.1.2 代码缩进

Python不像其他程序设计语言(如Java或者C语言)采用大括号“{}”分隔代码块,而是采用代码缩进和冒号“:”区分代码之间的层次。

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

正确的缩进:

01 height=float(input("请输入您的身高:")) # 输入身高

02 weight=float(input("请输入您的体重:")) # 输入体重

03 bmi=weight/(height*height) # 计算BMI指数

04

05 # 判断身材是否合理

06 if bmi<18.5:

07     print("您的BMI指数为:"+str(bmi)) # 输出BMI指数

08     print("体重过轻 ~@_@~")

09 if bmi>=18.5 and bmi<24.9:

10     print("您的BMI指数为:"+str(bmi)) # 输出BMI指数

11     print("正常范围,注意保持 (-_-)")

12 if bmi>=24.9 and bmi<29.9:

13     print("您的BMI指数为:"+str(bmi)) # 输出BMI指数

14     print("体重过重 ~@_@~")

15 if bmi>=29.9:

16     print("您的BMI指数为:"+str(bmi)) # 输出BMI指数

17     print("肥胖 ^@_@^")

Python对代码的缩进要求非常严格,同一个级别的代码块的缩进量必须相同。如果不采用合理的代码缩进,将抛出SyntaxError异常。例如,代码中有的缩进量是4个空格,还有的是3个空格,就会出现SyntaxError错误。

2.1.3 编码规范

1.编写规则

每个import语句只导入一个模块,尽量避免一次导入多个模块。

不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。

建议每行不超过80个字符,如果超过,建议使用小括号“()”将多行内容隐式的连接起来,而不推荐使用反斜杠“\”进行连接。

 通常情况下,运算符两侧、函数参数之间、“,”两侧建议使用空格进行分隔。

 应该避免在循环中使用“+”和“+=”运算符累加字符串。这是因为字符串是不可变的,这样做会创建不必要的临时对象。推荐将每个子字符串加入列表,然后在循环结束后使用join()方法连接列表。

适当使用异常处理结构提高程序容错性,但不能过多依赖异常处理结构,适当的显式判断还是必要的。

2.命名规范

本节将介绍Python中常用的一些命名规范

模块名尽量短小,并且全部使用小写字母,可以使用下划线分隔多个字母。例如,game_main、game_register、bmiexponent都是推荐使用的模块名称。

包名尽量短小,并且全部使用小写字母,不推荐使用下划线。例如,com.mingrisoft、com.mr、com.mr.book都是推荐使用的包名称,而com_mingrisoft就是不推荐的。

 类名采用单词首字母大写形式(即Pascal风格)。例如,定义一个借书类,可以命名为BorrowBook。

 模块内部的类采用下划线“_”+Pascal风格的类名组成。例如,在BorrowBook类中的内部类,可以使用_BorrowBook命名。

函数、类的属性和方法的命名规则同模块类似,也是全部使用小写字母,多个字母间用下划线“_”分隔。

 常量命名时全部使用大写字母,可以使用下划线。

使用单下划线“_”开头的模块变量或者函数是受保护的,在使用 from ××× import *语句从模块中导入时这些变量或者函数不能被导入。

使用双下划线“__”开头的实例变量或方法是类私有的。

2.2 保留字与标识符

2.2.1 保留字

保留字是Python语言中一些已经被赋予特定意义的单词。

不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用。

bf101470751a40f9b3250319a66e93a5.png

 注意:Python中所有保留字是区分字母大小写的。例如,if是保留字,但是IF就不属于保留字。

Python中的保留字可以在IDLE中输入以下两行代码查看。import keyword
keyword.kwlist

常见错误:如果在开发程序时,使用Python中的保留字作为模块、类、函数或者变量等的名称,则会提示“invalid syntax”的错误信息。

2.2.2 标识符

标识符可以简单地理解为一个名字,比如每个人都有自己的名字,它主要用来标识变量、函数、类、模块和其他对象的名称。

Python语言标识符命名规则如下:

 由字母、下划线“_”和数字组成。第一个字符不能是数字,目前Python中只允许使用ISO-Latin字符集中的字符A~Z和a~z。

不能使用Python中的保留字。
例如,下面是合法的标识符:
USERID
name
model2
user_age
下面是非法的标识符:
4word # 以数字开头
try # Python中的保留字
$money # 不能使用特殊字符$

注意:Python的标识符中不能包含空格、@、%和$等特殊字符。

在Python中,标识符中的字母是严格区分大小写的,两个同样的单词,如果大小写格式不一样,所代表的意义是完全不同的。

number = 0 # 全部小写
Number = 1 # 部分大写
NUMBER = 2 # 全部大写

Python中以下划线开头的标识符有特殊意义,一般应避免使用相似的标识符。

 以单下划线开头的标识符(如_width)表示不能直接访问的类属性。另外,也不能通过“from xxx import *”导入。

以双下划线开头的标识符(如__add)表示类的私有成员。

以双下划线开头和结尾的是Python里专用的标识,如__init__()表示构造函数。说明:在Python语言中允许使用汉字作为标识符,如“我的名字="xiaohong"”,在程序运行时并不会出现错误。

2.4 基本数据类型

在内存中存储的数据可以有多种类型。

2.4.1 数字类型

1.整数

整数用来表示整数数值,即没有小数部分的数值。在Python语言中,整数包括正整数、负整数和0,并且它的位数是任意的(当超过计算机自身的计算功能时,会自动转用高精度计算),如果要指定一个非常大的整数,只需要写出其所有位数即可。
整数类型包括十进制整数、八进制整数、十六进制整数和二进制整数。
(1)十进制整数:十进制整数的表现形式大家都很熟悉。

注意:不能以0作为十进制数的开头(0除外)。
(2)八进制整数:由0~7组成,进位规则为“逢八进一”,并且以0o/0O开头的数,如0o123(转换成十进制数为83)、-0o123(转换成十进制数为-83)。注意:在Python 3.x中,八进制数,必须以0o/0O开头。但在Python 2.x中,八进制数可以以0开头。
(3)十六进制整数:由0~9,A~F组成,进位规则为“逢十六进一”,并且以0x/0X开头的数,如0x25(转换成十进制数为37)、0Xb01e(转换成十进制数为45086)。注意:十六进制数必须以0X或0x开头。
(4)二进制整数:由0和1两个数组成,进位规则是“逢二进一”,如101(转换成十制数后为5)、1010(转换成十进制数后为10)。

3.复数
Python中的复数与数学中的复数的形式完全一致,都是由实部和虚部组成,并且使用j或J表示虚部。当表示一个复数时,可以将其实部和虚部相加,例如,一个复数,实部为3.14,虚部为12.5j,则这个复数为3.14+12.5j。

2.4.2 字符串类型

字符串就是连续的字符序列,可以是计算机所能表示的一切字符的集合。在Python中,字符串属于不可变序列,通常使用单引号“' '”、双引号“" "”或者三引号“''' '''或""" """”括起来。

其中单引号和双引号中的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上。

 title = '我喜欢的名言警句' # 使用单引号,字符串内容必须在一行

mot_cn = "命运给予我们的不是失望之酒,而是机会之杯。" # 使用双引号,字符串内容必须在一行

# 使用三引号,字符串内容可以分布在多行

mot_en = '''Our destiny offers not the cup of despair,05 but the chance of opportunity.'''

字符串开始和结尾使用的引号形式必须一致。另外当需要表示复杂的字符串时,还可以嵌套使用引号。

Python中的字符串还支持转义字符。

8db54c1375464ed6a60da919f217daf0.png

注意:在字符串定界符引前的前面加上字母r(或R),那么该字符串将原样输出,其中的转义字符将不进行转义。

2.4.3 布尔类型

布尔类型主要用来表示真值或假值。在Python中,标识符True和False被解释为布尔值。另外,Python中的布尔值可以转化为数值,True表示1,False表示0。
说明:Python中的布尔类型的值可以进行数值运算,例如,“False + 1”的结果为1。但是不建议对布尔类型的值进行数值运算。
在Python中,所有的对象都可以进行真值测试。其中,只有下面列出的几种情况得到的值为假,其他对象在if或者while语句中都表现为真。

 False或None。

 数值中的零,包括0、0.0、虚数0。 

空序列,包括字符串、空元组、空列表、空字典。

 自定义对象的实例,该对象的__bool__方法返回False或者__len__方法返回0。

2.4.4 数据类型转换
Python是动态类型的语言(也称为弱类型语言),不需要像Java或者C语言一样在使用变量前声明变量的类型。虽然Python不需要先声明变量的类型,但有时仍然需要用到类型转换。例如,要想通过一个print()函数输出提示文字“您的身高:”和浮点型变量height的值,就需要将浮点型变量height转换为字符串。

06e462917a054960a09d2bc9b82f2c12.png

 常见错误:在进行数据类型转换时,把一个非数字字符串转换为整型。

2.5 运算符
运算符是一些特殊的符号,主要用于数学计算、比较大小和逻辑运算等。Python的运算符主要包括算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符和位运算符。

使用算术运算符连接起来的式子称为算术表达式,使用逻辑运算符连接起来的式子称为逻辑表达式。

25b59ff6dad749cc90241f1fd37e8be9.png

 说明:在算术运算符中使用%求余,如果除数(第二个操作数)是负数,那么取得的结果也是一个负值。

注意:使用除法(/或//)运算符和求余运算符时,除数不能为0,否则将会出现异常。

说明:在Python 2.x中,除法运算符(/)的执行结果与Python 3.x不一样。在Python 2.x中,如果操作数为整数,则结果也将截取为整数。而在Python 3.x中,计算结果为浮点数。例如,7/2,在Python 2.x中结果为3,而在Python 3.x中结果为3.5。

2.5.2 赋值运算符

赋值运算符主要用来为变量等赋值。使用时,可以直接把基本赋值运算符“=”右边的值赋给左边的变量,也可以进行某些运算后再赋值给左边的变量。

1fd6f4a4b2b042928a1f9f44627a0ee0.png

 注意:混淆=和==是编程中最常见的错误之一。

2.5.3 比较(关系)运算符
比较运算符,也称关系运算符,用于对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回True,如果为假,则返回False。比较运算符通常用在条件语句中作为判断的依据。

42c8539d63ab479b84c2352c00f5e42f.png

 多学两招:在Python中,当需要判断一个变量是否介于两个值之间时,可以采用“值1 < 变量 < 值2”的形式,例如“0 < a < 100”。

2.5.4 逻辑运算符

逻辑运算符是对真和假两种布尔值进行运算,运算后的结果仍是一个布尔值,Python中的逻辑运算符主要包括and(逻辑与)、or(逻辑或)、not(逻辑非)。

3c39706cf5224eb0af22a2696461d958.png

1152887904754e1d94dc3e1fe6359d41.png 

 2.5.5 位运算符
位运算符是把数字看作二进制数来进行计算的,因此,需要先将要执行运算的数据转换为二进制,然后才能进行执行运算。Python中的位运算符有位与(&)、位或(|)、位异或(^)、取反(~)、左移位(<<)和右移位(>>)运算符。

整型数据在内存中以二进制的形式表示,如7的32位二进制形式如下:
00000000 00000000 00000000 00000111其中,左边最高位是符号位,最高位是0表示正数,若为1则表示负数。负数采用补码表示,如-7的32位二进制形式如下:
11111111 11111111 11111111 11111001

1.“位与”运算
“位与”运算的运算符为“&”,“位与”运算的运算法则是:两个操作数据的二进制表示,只有对应数位都是1时,结果数位才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

2.“位或”运算
“位或”运算的运算符为“|”,“位或”运算的运算法则是:两个操作数据的二进制表示,只有对应数位都是0,结果数位才是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

3.“位异或”运算
“位异或”运算的运算符是“^”,“位异或”运算的运算法则是:当两个操作数的二进制表示相同(同时为0或同时为1)时,结果为0,否则为1。若两个操作数的精度不同,则结果数的精度与精度高的操作数相同。

4.“位取反”运算
“位取反”运算也称“位非”运算,运算符为“~”。“位取反”运算就是将操作数中对应的二进制数1修改为0,0修改为1。

5.左移位运算符<<
左移位运算符<<是将一个二进制操作数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。左移位运算相当于乘以2的n次幂。
例如,int类型数据48对应的二进制数为00110000,将其左移1位,根据左移位运算符的运算规则可以得出(00110000<<1)=01100000,所以转换为十进制数就是96(48×2);将其左移2位,根据左移位运算符的运算规则可以得出(00110000<<2)=11000000,所以转换为十进制数就是192。

6.右移位运算符>>

右移位运算符>>是将一个二进制操作数向右移动指定的位数,右边(低位端)溢出的位被丢弃,而在填充左边(高位端)的空位时,如果最高位是0(正数),左侧空位填入0;如果最高位是1(负数),左侧空位填入1。右移位运算相当于除以2的n次幂。

2.5.6 运算符的优先级
所谓运算符的优先级,是指在应用中哪一个运算符先计算,哪一个后计算,与数学的四则运算应遵循的“先乘除,后加减”是一个道理。
Python的运算符的运算规则是:优先级高的运算先执行,优先级低的运算后执行,同一优先级的操作按照从左到右的顺序进行。也可以像四则运算那样使用小括号,括号内的运算最先执行。

a024ba3b05ad4baaa2c12e4f57666fbc.png

 在编写程序时尽量使用括号“()”来限定运算次序,避免运算次序发生错误。

2.6 基本输入和输出

从第一个Python程序开始,我们一直在使用print()函数向屏幕上输出一些字符,这就是Python的基本输出函数。除了print()函数,Python还提供了一个用于进行标准输入的input()函数,用于接收用户从键盘上的输入内容。

2.6.1 使用input()函数输入
在Python中,使用内置函数input()可以接收用户的键盘输入。input()函数的基本用法如下:
variable = input("提示文字")
其中,variable为保存输入结果的变量,双引号内的文字用于提示要输入的内容。例如,想要接收用户输入的内容,并保存到变量tip中,可以使用下面的代码:
tip = input("请输入文字:")
在Python 3.x中,无论输入的是数字还是字符都将被作为字符串读取。如果想要接收数值,需要把接收到的字符串进行类型转换。例如,想要接收整型的数字并保存到变量age中,可以使用下面的代码:
age = int(input("请输入数字:"))说明:在Python 2.x中,input()函数接收内容时,数值直接输入即可,并且接收后的内容作为数字类型;而如果要输入字符串类型的内容,需要将对应的字符串使用引号括起来,否则会报错。

2.6.2 使用print()函数输出
默认的情况下,在Python中,使用内置的print()函数可以将结果输出到IDLE或者标准控制台上。其基本语法格式如下:
print(输出内容)
其中,输出内容可以是数字和字符串(字符串需要使用引号括起来),此类内容将直接输出,也可以是包含运算符的表达式,此类内容将计算结果输出。

a = 10 # 变量a,值为10
b = 6 # 变量b,值为6

print(6) # 输出数字6print(a*b) # 输出变量a*b的结果60

print(a if a>b else b) # 输出条件表达式的结果10print("成功的唯一秘诀——坚持最后一分钟") # 输出字符串“成功的唯一秘诀——坚持最后一分钟”

在Python中,默认情况下,一条print()语句输出后会自动换行,如果想要一次输出多个内容,而且不换行,可以将要输出的内容使用英文半角的逗号分隔。例如下面的代码将在一行输出变量a和b的值:

print(a,b) # 输出变量a和b,结果为:10 6

命运给予我们的不是失望之酒,而是机会之杯。”输出到D:\mot.txt中,代码如下:
fp = open(r'D:\mot.txt','a+') # 打开文件

print("命运给予我们的不是失望之酒,而是机会之杯。",file=fp) # 输出到文件中
fp.close() # 关闭文件

2.7实战

1.模拟手机充值

编写Python程序,模拟以下场景:
计算机输出:欢迎使用XXX充值业务,请输入充值金额:
用户输入:100
计算机输出:充值成功,您本次充值100元。

代码:

print('欢迎使用xxx充值业务,请输入充值金额:')

number=int(input(''))

print('成功,本次充值'+str(number))

2.用数字1绘制一个三角形

代码:

print('''

1

11

111

1111

''')

3.根据父母的身高预测儿子的身高

本实战将实现根据输入的父亲和母亲的身高,预测出儿子的身高,并打印出来。计算公式为:儿子身高 = (父亲身高 + 母亲身高)×0.54。

num1=int(input('输入父亲身高'))

num2=int(input('输入母亲身高'))

res=(num1+num2)*0.54

print('预测儿子身高为:'+str(res))

2.8 小结
本章首先对Python的语法特点进行了介绍,主要包括注释、代码缩进和编码规范,然后介绍了Python中的保留字、标识符及定义变量的方法,接下来介绍了Python中的基本数据类型、运算符和表达式,最后介绍了基本输入和输出函数的使用。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小程序员.¥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值