第2章-变量和简单数据类型
2.1 运行 hello_world.py 时发生的情况
1 #hello_world.py 2 print('Hello Python world!')
①文件名“hello_world.py”中,末尾的.py指出这是一个Python程序,文件名后缀是编程语言类型,编辑器将使用Python解释器来运行它。如第1章所说,python解释器会将代码,按python的语法去翻译,执行。
② print的作用,将将括号中的内容打印到屏幕。
③函数名称显示为蓝色,如"print"
④不是Python代码显示为橙色,如“Hello Python world!”。
2.2 变量
1 message = "Hello Python world!" 2 print(message) 3 message = "Hello Python Crash Course world!" 4 print(message)
①每个变量都存储了一个值——与变量相关联的信息,变量命名,即将变量值和变量名关联起来,如第一行,message存储的值为文本“Hello Python world!”。
②print打印变量时,是将变量关联的值打印到屏幕。如第二行,打印message,将message关联的“Hello Python world!”打印到屏幕。
③在程序中可随时修改变量的值,而Python将始终记录变量的最新值。如第四行打印的结果为"Hello Python Crash Course world!"。
2.2.1 变量的命名和使用
变量的命名规则
① 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。
② 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
③不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如 print。
④ 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
⑤慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
⑥就目前而言,应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的主意。
2.2.2 使用变量时避免命名错误
1 message = "Hello Python Crash Course world!" 2 print(mesage) 3 '' 4 Traceback (most recent call last): 5 ① File "hello_world.py", line 2, in <module> 6 ② print(mesage) 7 ③NameError: name 'mesage' is not defined 8 ''
①程序存在错误时,Python解释器将竭尽所能地帮助你找出问题所在。程序无法成功地运行时,解释器会提供一个traceback。traceback是一条记录,指出了解释器尝试运行代码时,在什么地方陷入了困境。
②解释器指出,文件的第几行存在错误,如①所示
③解释器会列出了错误代码,旨在帮助你快速找出错误,如②所示。
④解释器会指出了它发现的是什么样的错误,如③所示。
⑤名称错误通常意味着两种情况:要么是使用变量前忘记了给它赋值,要么是输入变量名时拼写不正确。
1 mesage = "Hello Python Crash Course reader!" 2 print(mesage)
①Python解释器不会对代码做拼写检查,但要求变量名的拼写一致。如上例message错误地拼写成了mesage,但计算机不关心拼写是否正确。
1 #练习
将一条消息存储到变量中,将其打印出来;再将变量的值修改为一条新消息,并将其打印出来
2 message = "世界很美好!" 3 print(message) 4 message = "世界并不美好!" 5 print(message)
2.3 字符串
1 #字符串 2 string1 = "This is a string." 3 string2 = 'This is also a string.' 4 string3 = 'I told my friend, "Python is my favorite language!"' 5 string4 = "The language 'Python' is named after Monty Python, not the snake." 6 string5 = "One of Python's strengths is its diverse and supportive community."
①字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,这种灵活性让你能够在字符串中包含引号和撇号。如上所示。
2.3.1 使用方法修改字符串的大小写
1 name = "ada lovelace" 2 print(name.title()) 3 name = "Ada Lovelace" 4 print(name.upper()) 5 print(name.lower())
①方法是Python可对数据执行的操作。在变量后“.方法名()”,每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成其工作。这种信息是在括号内提供的。
②title() 以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。如行2
③upper()将字符串改为全部大写。如行4
④lower()将字符串改为全部小写。如行5
2.3.2 合并(拼接)字符串
1 first_name = "ada" 2 last_name = "lovelace" 3 full_name = first_name + " " + last_name 4 print(full_name) 5 print("Hello," + full_name.title() + "!") 6 message = "Hello," + full_name.title() + "!" 7 print(message)
①Python使用加号( + )来合并字符串。这种合并字符串的方法称为拼接。通过拼接,可使用存储在变量中的信息来创建完整的消息。如行5。
②你可以使用拼接来创建消息,再把整条消息都存储在一个变量中。如行6。
2.3.3 使用制表符或换行符来添加空白
1 print("python") 2 print(" python") 3 print("Languages: python C JavaScript") 4 print("Languages: python C JavaScript")
①在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。你可使用空白来组织输出,以使其更易读。
②要在字符串中添加制表符,可使用字符组合 。如行2
③要在字符串中添加换行符,可使用字符组合 。如行3
④还可在同一个字符串中同时包含制表符和换行符。字符串 " " 让Python换到下一行,并在下一行开头添加一个制表符。如行4
2.3.4 删除空白
1 favorite_language = 'python ' 2 print(favorite_language) 3 print(favorite_language.rstrip()) 4 print(favorite_language) 5 favorite_language = favorite_language.rstrip() 6 print(favorite_language) 7 favorite_language = ' python' 8 print(favorite_language.rstrip()) 9 print(favorite_language.lstrip()) 10 print(favorite_language.strip())
①Python能够找出字符串开头和末尾多余的空白。
②确保字符串末尾没有空白,可使用方法rstrip() 。如行3
③方法并不能改变变量的值,要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中。如行5
④lstrip()可以剔除字符串开头的空白。如行9
⑤strip()可以同时剔除字符串两端的空白。如行10
⑥在实际程序中,这些剥除函数最常用于在存储用户输入前对其进行清理。
2.3.5 使用字符串时避免语法错误
1 message = "One of Python's strengths is its diverse community." 2 print(message) 3 message = 'One of Python's strengths is its diverse community.' 4 print(message)
File "E:/python/代码/caogao.py", line 4 message = 'One of Python's strengths is its diverse community.' ^ SyntaxError: invalid syntax①
①语法错误是一种时不时会遇到的错误。程序中包含非法的Python代码时,就会导致语法错误。
②在用单引号括起的字符串中,如果包含撇号,就将导致错误。如行3
③①这种语法错误表明,在解释器看来,其中的有些内容不是有效的Python代码。
2.3.6 Python 2 中的 print 语句
1 print "Hello Python 2.7 world!"
在Python 2中,无需将要打印的内容放在括号内。从技术上说,Python 3中的 print 是一个函数,因此括号必不可少。有些Python 2 print 语句也包含括号,但其行为与Python 3中稍有不同。简单地说,在Python 2代码中,有些 print 语句包含括号,有些不包含。
1 #习题1
将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello Eric, would you like to learn some Python today?”。
2 name = input("请输入你的名字:") 3 question = "Hello " + name + ", would you like to learn some Python today?" 4 print(question) 5 #习题2
将一个人名存储到一个变量中,再以小写、大写和首字母大写的方式显示这个人名。
6 name = input("请输入你的英文名:") 7 print(name.lower()) 8 print(name.title()) 9 print(name.upper()) 10 #习题3
找一句你钦佩的名人说的名言,将名人的姓名存储在变量 famous_person 中,再创建要显示的消息,并将其存储在变量 message 中,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号):Albert Einstein once said, “A person who never made a mistake never tried anything new.”
11 famous_person = input("请输入名人名:") 12 wisdom = input("请输入" + famous_person + "的名言:") 13 message = famous_person + " once said," + '"' + wisdom + '"' 14 print(message) 15 #练习4
存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合 " " 和 " " 各一次。打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数 lstrip() 、rstrip() 和 strip() 对人名进行处理,并将结果打印出来。
16 name = " Zhang jin ye " 17 print(name) 18 print(name.lstrip()) 19 print(name.rstrip()) 20 print(name.strip())
2.4 数字
2.4.1 整数
1 print(2+3) 2 print(3-2) 3 print(2*3) 4 print(3/2) 5 print(3**2) 6 print(3**3) 7 print(10**6)
①在Python中,可对整数执行加( + )减( - )乘( * )除( / )运算。如行1、2、3、4
②Python使用两个乘号表示乘方运算。如行5、6、7
1 print(2+3*4) 2 print((2+3)*4)
③Python还支持运算次序,因此你可在同一个表达式中使用多种运算。你还可以使用括号来修改运算次序,让Python按你指定的次序执行运算。
2.4.2 浮点数
1 print(0.1+0.1) 2 print(0.2+0.2) 3 print(2*0.1) 4 print(2*0.2) 5 print(0.2+0.1)
0.30000000000000004 6 print(3*0.1)
0.30000000000000004
①Python将带小数点的数字都称为浮点数。
②需要注意的是,结果包含的小数位数可能是不确定的。如行5、6
2.4.3 使用函数 str() 避免类型错误
1 age = 23 2 message = "Happy " + age +"rd Birthday!"
Traceback (most recent call last):
File "E:/python/代码/caogao.py", line 3, in <module>
message = "Happy" + age +"rd Birthday!"
TypeError: can only concatenate str (not "int") to str①
3 message = "Happy " + str(age) +"rd Birthday!" 4 print(message)
①①这是一个类型错误,意味着Python无法识别你使用的信息。
②函数 str() ,它让Python将非字符串值表示为字符串。如行3
2.4.4 Python 2 中的整数
在Python 2中,整数除法的结果只包含整数部分,小数部分被删除。请注意,计算整数结果时,采取的方式不是四舍五入,而是将小数部分直接删除。在Python 2中,若要避免这种情况,务必确保至少有一个操作数为浮点数,这样结果也将为浮点数。从Python 3转而用Python 2或从Python 2转而用Python 3时,这种除法行为常常会令人迷惑。使用或编写同时使用浮点数和整数的代码时,一定要注意这种异常行为。
1 #习题1
编写 4 个表达式,它们分别使用加法、减法、乘法和除法运算,但结果都是数字 8。为使用 print 语句来显示结果,务必将这些表达式用括号括起来,也就是说,输出应为 4行,其中每行都只包含数字 8。
# 张** 2020/8/16 练习python的加减乘除 2 print(3+5) 3 print(11-3) 4 print(2*4) 5 print(32/4) 6 #习题2
将你最喜欢的数字存储在一个变量中,再使用这个变量创建一条消息,指出你最喜欢的数字,然后将这条消息打印出来。
# 张** 2020/8/16 将你输入的最喜欢的数字打印出来。
7 love_number = input("请输入您最喜欢的数字:") 8 print("我最喜欢的数字是" + str(love_number) + "。")
2.5 注释
注释让你能够使用自然语言在程序中添加说明。
2.5.1 如何编写注释
1 #向大家问好 2 print("Hello python people!")
在Python中,注释用井号( # )标识。井号后面的内容都会被Python解释器忽略
2.5.2 该编写什么样的注释
2.6 Python 之禅
开发的项目涉及复杂代码时,一定要为这些代码编写有益的注释。