Python-2 变量和简单数据类型
2 变量和简单数据类型
2.1 运行hello_world.py时发生情况
运行程序时,末尾的.py指出这是一个Python程序,因此编辑器使用Python解释器运行。Python解释器读取整个程序,确定每个单词的含义。
2.2 变量
下面在hello_world.py中使用一个变量。运行这个结果,输出与以前相同。
message = "Hello Python World!"
print(message)
Hello Python World!
添加一个名为message的变量。每个变量存储一个值—与变量相关联的信息。
添加变量导致Python解释器需要做更多的工作。处理第一行代码,将文本与变量关联;处理第二行代码时,将与变量相关的值打印到屏幕。
下面进一步拓展该程序,使其再打印一条消息。运行该程序,看到两行输出:
message="Hello Python World"
print(message)
message = "Hello Python Crash Course World!"
print(message)
Hello Python World
Hello Python Crash Course World!
在程序中可以随时修改变量的值,Python始终记录变量的值。
2.2.1 变量命名和使用
Python中使用变量,需要遵守一些规则和指南。违反这些规则讲引发错误,指南会让编写的代码更易于理解,以下为变量规则:
- 变量名只能包含字母、数字和下划线。变量可以使用字母或下划线大头,但是不能以数字打头。
- 变量名不能包含空格,但可以使用下划线分隔其中的单词。
- 不要使用Python关键字和函数名用作变量名,即不用使用Python保留用于特殊用途的单词。
- 变量名应该既简单又有描述性。
慎用小写字母l和大写字母O,因为它们可能被认为数字1和0。
注意:目前,应使用小写Python变量。在变量名中使用大写字母虽然不会导致错误,但应该尽量避免。
2.2.2 使用变量时避免命名错误
程序存在错误时,Python解释器会尽量帮助你找出问题所在。程序无法成功运行,解释器会提供一个traceback。traceback是一条记录,指出了解释器尝试运行代码时,在什么地方陷入了困境。
计算机不会关心变量名的拼写是否错误。
2.3 字符串
字符串就是一系列字符。在Python中用引号括起来的就是字符串,其中引号可以使单引号也可以是双引号。字符串中可以包含引号和撇号
"This is a string"
"This is a aslo a string"
"This is a 'string' "
2.3.1 使用方法修改字符串的大小写
字符串最简单的操作之一就是修改其中单词的大小写
name = "ada lovelace"
print(name.title())
Ada Lovelace
小写字符串“ada lovelace”存储到变量name中,在print()语句中,方法title()出现在这个变量后面。方法是Python可对数据执行的操作。在name.title()中,name后面的句点(.)让Python对变量name执行方法title()制定的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成其工作。这种信息是在括号里提供。
title()以首字母大写方式显示每个单词,即将每个单词的首字母都改为大写。
将字符串改为全部大写和全部小写:
name = "Ada Lovelace"
print(name.upper())
print(name.lower())
ADA LOVELACE
ada lovelace
2.3.2 合并(拼接)字符串
在很多情况下,需要合并字符串。可以将姓和名存储在不同变量中,等显示时合二为一。Python使用加号(+)拼接字符串。合并字符串的方法称为拼接。通过拼接可以存储在变量中的信息创建完整的消息。使用拼接创建消息,再把整条消息存储在一个变量中:
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " +last_name
message = "Hello,"+full_name.title()+"!"
print(message)
Hello,Ada Lovelace!
2.3.3 使用制表符或换行符添加空白
在编程中,空白指任何非打印字符,如空格、制表符和换行符。
在字符串中添加制表符,可使用字符组合\t
在字符串中添加换行符,可使用字符组合\n
在字符串中同时包含制表符和换行符。字符串”\n\t”让Python换到下一行,并在下一行开头添加一个制表符
2.3.4 删除空白
Python能找出字符串开头和末尾多余的空白。要确保字符串每位没有空白,可使用方法restrip()
。
facorite_language = ' Python '
print(facorite_language)
print(facorite_language.rstrip())
facorite_language = facorite_language.rstrip()
print(facorite_language)
Python
Python
Python
存储在变量facorite_language中的字符串可能包含多余空白。对favorite_language调用方法restrip(),这个多余的空格被删除了。但,这种删除只是暂时的,接下来在访问时,仍然包含多余的空白,要删除必须将删除操作的结果存到变量中。
删除字符串开头,或者同时剔除字符串两端的空白。
facorite_language = ' Python '
facorite_language.lstrip()
facorite_language.strip()
'Python'
2.3.5 使用字符串时避免语法错误
语法错误时一种不时会遇到的错误。程序中包含非法的Python代码时,就会导致语法错误。
撇号位于两个双引号之间,Python解释器可以正确理解字符串
撇号位于两个单引号之间,Python解释器无法正确理解字符串
2-4 数字
2.4.1 整数
在Python中可以对整数执行加(+)减(-)乘(*)除(/)运算,使用两个乘号表示乘方运算,还支持运算次序,因此一个表达式可以使用多种运算,可以使用括号改变这些运算次序:
>>>2+3
>>>3-11
>>>2*36
>>>3/21.5
>>>3 ** 29
>>>2 + 3*4
>>>(2+3)*4
2.4.2 浮点数
Python将带小数点的数字称为浮点数。
>>>0.1 + 0.10.2>>>2 * 0.10.2
需要注意的是,结果包含的小树位数不确定:
>>> 0.2 + 0.10.30000000000000004>>>3 * 0.10.30000000000000004
2.4.3 使用函数str()避免类型错误
需要在消息中使用变量的值。
birthday.py
File "C:\Users\hmlhao\AppData\Local\Temp/ipykernel_8796/1180507710.py", line 5
在Python中可以对整数执行加(+)减(-)乘(*)除(/)运算,使用两个乘号表示乘方运算,还支持运算次序,因此一个表达式可以使用多种运算,可以使用括号改变这些运算次序:
^
SyntaxError: invalid character '(' (U+FF08)
age = 23
message = "Happy " + age + "rd Birthday!"
print(message)
上述代码会报类型错误,意味着Python无法识别信息。Python知道使用了一个值为整数(int)的值,但无法解读。可以调用函数str(),让非字符串转为字符串:
age = 23
message = "Happy " + str(age) + "rd Birthday!"
print(message)
2.5 注释
注释让你能够使用自然语言在程序中添加说明。
2.5.1 如何编写注释
在Python中,注释使用井号(#)标识。井号后面的内容都会被Python解释器,如下图所示:
comment.py
# Say Hello
print("Hello Python People!")
Python解释器会忽略第1行,只执行第2行。
在代码中编写清晰、简洁的注释
2.6 Python之禅
import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
还没有评论,来说两句吧...