下面我们开始介绍变量、数据类型。这是迈向入门的关键一步。
1.变量
变量是计算机程序中用于存储数据的一种标识符。它可以被赋值和更改,以便在程序中进行存储和操作。变量可以是不同的数据类型,如整数、浮点数、字符串等。通过使用变量,程序可以动态地处理和操作数据,使代码具有更强的灵活性和可复用性。变量在程序中充当了一种标签,用于引用和操作存储的数据。
在上一篇的结尾中,我们尝试了基本程序“Hello World!”,现在,我们在程序中添加一个变量“message”:
message = "Hello World!"
print (message)
我们来看一下最后的输出结果:
Hello World!
我们发现,这个输出与原本的输出一样。这说明,变量名“message”指向一个地址,这个地址存储了一个值“Hello World!”。但我们通过print调用变量message时,计算机访问地址,读取其中存储的值。
我们可以预想到,用一个简洁明了的变量名指代一串值,能够大幅提高代码的流畅、通俗。
1.1怎样命名变量
在Python中使用变量,有以下规范要求:
- 变量名只能包含字母、数字、下划线,不能包含空格。
- 变量名可以字母或下划线打头,不能以数字打头。
- 不要将Python关键字和函数名用作变量名(关键字和函数名详见链接)。
http://t.csdnimg.cn/TdurVhttp://t.csdnimg.cn/TdurV还有一些为便于程序员之间的交流,人为做出的规范要求:
- 变量名应既简短又具有描述性。
- 慎用小写字母l和大写字母O,因为容易被人误认为是数字1和0。
- 对于普通变量,尽量用全小写字母,因为一般用大写字母命名函数和类。
1.2使用变量
在使用变量时,我们要注意一种常见的错误:名称错误。例如:
message = "Hello World!"
print (mesage)
Python无法成功运行程序,并提供了一个trace back:
Traceback (most recent call last):
File "hello_world.py", line 2, in <module>
print (mesage)
^^^^^^
NameError: name 'mesage' is not defined. Did you mean: 'message'?
解释器指出此处出现了一个名称错误,并报告打印的变量mesage未定义。由于python发现mesage名称与已定义的message类似,它将询问是否是后者。
要注意,编程语言要求严格,因此一个字符的偏差也可能会影响整个程序的运行。
1.3同时给多个变量赋值
在Python中,可以通过逗号分隔的方式,同时给多个变量赋值。例如:
a,b,c="c","b","a"
print (a)
print (b)
print (c)
输出结果如下:
c
b
a
2.数据类型
在C语言中,数据类型很重要,如int(整型)、float(浮点数)、char(字符)等等。虽然在Python中这种分类被弱化了,不过数据类型仍然起着不可忽视的作用。
2.1字符串
string(字符串)就是一系列字符。在Python中,用引号引起的都是字符串。其中的引号可以是单引号,也可以是双引号:
"This is a string"
'This is also a string'
当然,要注意,如果在字符串中要使用引号或撇号,那么需要灵活调整单双引号的使用,使得Python不会因此而弄混。例如:
# 在双引号中使用单引号或撇号
'print "Hello World!"'
# 在单引号中使用双引号
"print 'Hello World!'"
# 如果在双引号中使用双引号会导致出错
"print "Hello World!""
Python会把第一个引号到第二个相应引号之间的内容视为同一串字符,第三行中出现灰色字符,说明Python没有识别到"Hello World!"也是字符串的一部分。
2.1.1在字符串中使用变量
在字符串中,我们可以使用其他变量的值。例如,先用两个变量分别表示名和姓,再合并这两个变量值以显示姓名:
surname = '张'
name = '三'
print (surname)
print (name)
full_name = f"{surname}{name}"
print (full_name)
在字符串中插入变量的值,可先在左引号前加上字母f,再将要引用的变量放在花括号内。Python在显示字符串时会自动提取变量的值。输出如下:
张
三
张三
2.1.2字符串相关方法
方法(method)是Python可对数据执行的操作。下面我们介绍一些字符串相关方法,利用这些方法可以快速将字符串处理成我们想要的样子,或是获得字符串的相关信息。
1.修改大小写
- title():所有单词首字母大写
- upper():全字母大写
- lower():全字母小写
2.删除空格
- rstrip():从右到左遍历原字符串,去除在字符串中的字符,直到遇到第一个不在字符串中的字符为止;若是括号中没有东西,则去除最右侧空格。
- lstrip():从左到右遍历原字符串,去除在字符串中的字符,直到遇到第一个不在字符串中的字符为止;若是括号中没有东西,则去除最左侧空格。
- strip():首尾遍历原字符串,去除在字符串中的字符,直到遇到第一个不在字符串中的字符为止;若是括号中没有东西,则去除两侧空格。
- removeprefix():删除字符串前端的指定子字符串
4.检索信息
- count():统计字符串里指定字符出现的次数(区分大小写)
- find():查找某字符串里是否包含被查询的子字符串。
下面我们来演示一下这些方法的使用。
message = "hello python world!"
message = message.title ()
#对message使用title方法,并用获得的值赋给message变量
print (message)
message = message.upper ()
print (message)
message = message.lower ()
print (message)
message = message.lstrip ("hello ")
print (message)
print (message.rstrip("!"))
#也可以直接在print中使用方法
print (message.count ('o'))
输出如下:
Hello Python World!
HELLO PYTHON WORLD!
hello python world!
python world!
python world
2
除了以上介绍的内容,小伙伴们也可以参考这篇博客。http://t.csdnimg.cn/rlnHfhttp://t.csdnimg.cn/rlnHf
2.2整型
在C++中,使用整型变量,我们要先声明变量类型int;而在Python中,简化了这一步骤。我们可以直接将整数赋给变量,也可以用变量直接进行运算。
运算符号有加(+)、减(-)、乘(*)、除(/),优先顺序与四则运算相同;同时还可以用括号来调整先后顺序。要注意,程序中,{ }和[ ]有另外的作用,并不用来调整先后顺序。
a = 1
b = 2
print (a+b)
print (f"1+2={a+b}")
print (f"1-2={b-a}")
print (f"1*2={b*a}")
print (f"1/2={a/b}")
输出结果为:
3
1+2=3
1-2=1
1*2=2
1/2=0.5
不过,当我们使用除法时
print (f"1/2={a/b}“)
会出现以下结果:
2/1=2.0
这就意味着,整数除以整数, 会出现小数结果。这就要引入下一部分浮点数的介绍了。
2.3浮点数
大多数编程语言都将带小数点的数称为浮点数,意即小数点可以出现在数的任何位置上。所有编程语言对于浮点数的处理都需要下一番功夫,因为二进制存储十进制小数,并不能保证完全精确。但是有别于C++,Python相对更加便捷,它通常会以我们期望的方式处理浮点数,节省了我们的一部分精力。
#输入:
print (0.2+0.2)
print (0.2*2)
#输出:
0.4
0.4
但是有些时候,结果包含的小数位数是不确定的:
#输入:
print (0.2+0.1)
#输出:
0.30000000000000004
这样的情况说明,Python所输出的小数是有一定精度限制的。因此,我们需要学习处理多余小数位数的方法。
下面介绍使用round函数来保留一定精度的方法。
a = 12.345
print(round(a, 2))
#round(变量名,保留位数)
输出的将会是通过四舍五入保留两位小数的结果:
12.35
2.4常量
常量(constant)是在整个程序生命周期都不会改变的量。由于Python没有内置常量类型(例如C++中的define),因此它的使用与变量无异,通常是程序员为了程序表达的清晰明了而自己声明的量。
Python程序员通常会使用全大写字母来指出某个变量应视为常量,如:
MAX = 1000000