自学计划 - python 小白基础教程 - 第二课:变量与操作符

目录

简介
第一课:python 的介绍
第二课:变量与操作符
第三课:字符串和数字
第四课:条件执行语句
第五课:列表与元组
第六课:循环语句
第七课:集合
第八课:字典
第九课:函数
第十课:面向对象
第十一课:文件的操作
第十二课:学生管理系统

上一节课的最后我们跑了一行代码,其中print属于 python 的内置方法。它的功能是接收一个参数,并将其打印到终端。

小提示:这里的打印跟打印机的打印有点区别,可以理解为显示或输出。而终端则是常见的黑框框窗口,能方便我们进行一些字符上的交互,而无需大费周章地写一个操作界面。

print('hello world')

变量

变量是一个程序代码的最基本组成单位,如同一个菜篮子一般。我们可以往其中放入想保存的任何数据,再对其进行操作。

我们只需要用 =(赋值) 号,左边写上变量名,右边写上值,就可创建一个新的变量。

name = '小明'
age = 20
height = 1.8

此时我们创建了 name、age、height 三个变量,其中分别保存着名字、年龄、身高。接着使用 print 方法将变量的值打印出来。

print(name)
print(age)
print(height)

输出:

小明
20
1.8

类型

python 的变量会区分不同的类型,不同的类型有着各自对应的方法和可执行的操作,平时使用时应严格区分。可以使用 type 方法查看变量对应的类型。

人类可以根据上下文语义对交流的内容自行地区分,它是属于价格年龄之类的数字还是小说之类的文本内容。如果是价格之类的数字我们就可以进行加减乘除等运算。而计算机在语义分析上没有这么完善,所以需要人为地对数据进行定义。区别数据属于数字还是文本,让计算机明白可以进行什么样的操作。这就是类型存在的意义。

print(type(name))
print(type(age))
print(type(height))

输出:

<class 'str'>
<class 'int'>
<class 'float'>

很明显的,用单引号包裹起来的字符串属于 string(字符串) 类型。对于数字来说,没有小数点的属于 int(整数)类型, 有小数点的则是 float(浮点) 类型。

需要注意的是,一个数字如果用单引号包起来,它也属于字符串类型。

print(type('123'))

输出:

<class 'str'>

变量名和关键字

在编写程序时我们推荐使用一些有意义的变量名,方便我的理解和使用。

变量名的长度不受限,可以由字母数字下划线(_)组成,但不能以数字作为变量名的第一个字符。通常推荐使用小写字母作为变量名的首字符,而下划线通常约定俗成地用作私有变量的首字符。

以下都是错误的命名示范。

10year = 10
year@ = 10
def = 10

其中 10year 用数字开头,year@ 有 @ 这个 非法字符 , def 是保留关键字。

至于保留关键字是指 python 中已经预先占用的字符,包括但不限于一些数据常量,语法定义符,运算符等等。

在 python 有以下 35 个保留关键字。

and       del       from      None      True
as        elif      global    nonlocal  try
assert    else      if        not       while
break     except    import    or        with
class     False     in        pass      yield
continue  finally   is        raise     async
def       for       lambda    return    await

语句

一条语句是 python 中的基本可执行单元,所有的程序都是由这些可执行语句组成的, 执行顺序为从上往下执行。

print(1)
x = 2
print(x)
print(x + 1)

输出

1
2
3

print 语句会在终端打印出内容,而赋值语句则没有输出。

算术运算符

既然电脑被称为计算机,那它必须是有计算的功能。python 中有着日常中所用到的七个常见的算术运算符,分别是 +(加)、-(减)、*(乘)、/(除)、%(取模)、**(幂) 和 //(取整除)运算符。

x = 5
y = 2
print('x + y =', x + y)
print('x - y =', x - y)
print('x * y =', x * y)
print('x / y =', x / y)
print('x % y =', x % y)
print('x ** y =', x ** y)
print('x // y =', x // y)

输出

x + y = 7
x - y = 3
x * y = 10
x / y = 2.5
x % y = 1
x ** y = 25
x // y = 2

我们在上面的例子中给 print 传递了两个参数,

第一个是'x + y ='字符串,第二个是 x + y的计算结果。

print 函数可以接收多个参数, 它会自动拼接字符串打印。

赋值运算符

赋值运算是左边的变量与右边的值先运算再重新给左边变量赋值的意思。

python 中有以下八种赋值运算符号,=+=-=*=/=%=**=//=

x = 8
x += 3
x -= 3
x *= 3
x /= 3
x %= 3
x **= 3 - 1
x //= 3
print(x)

这里就不贴运行结果了,口算能力强的同学可以先口算一下,再用 python 跑一遍对比下结果。

算术运算符的优先级

当多个运算符出现在一个表达式中时,就要依靠运算符的优先级判断其操作顺序。对于算术运算符,python 遵守着数学规则的惯例。

  • 括号中的操作拥有着最高优先级。例如 2 * (2 + 1) 的结果是 6(4 - 1) * (2 + 1) 的结果是 9
  • 其次是 ** 运算符,2 * 3 ** 2 的结果是 18 而不是 36
  • 接着是 */%// 运算符。3 + 4 * 2 的结果是 11
  • 最后是 +- 运算符。
  • 当运算符优先级属于同级时,则会从左往右进行运算。 2 + 3 - 5 的结果是 0

小提示:对于运算符的优先级不必死记硬背,一个是由于实际中很少出现很长的运算表达式。再者当记不清的时候直接用括号括起需要优先运算的部分,或将表达式拆分成几个表达式,简单明了还提高可读性。

字符串上使用运算符

字符串支持两种运算符,+* 运算符。

+ 用于连接两个字符串,因此要求运算符两边都是字符串。

name = '小明'
action = '打球'
result = name + action

print(result)

输出

小明打球

* 可以将字符串重复 n 次,所以运算符的一边要求是字符串另一边则必须是数字。

name = '小明傻X '
namex3 = name * 3

print(namex3)

输出

小明傻X 小明傻X 小明傻X

接收用户的输入

程序的目的就是为了接收人们的输入加以处理并输出。如我们平时打游戏时,鼠标键盘就是输入设备,而显示器音响则是输出设备。

这里我们用input方法接收用户的输入,当用户输入了字符并回车时则会返回一个字符串。

inp = input()
print('您输入的是:', inp)

输入小明爱吃瓜并回车
此时会同时打印出您输入的是:小明爱吃瓜

小明爱吃瓜
您输入的是:小明爱吃瓜

可以给 input 一个字符串参数,它将会在用户输入之前给予提示。
这里的 \n 作用是换行。

name = input('请输入你的名字:\n')
print(name + '爱吃瓜')

让我们输入名字并回车。

请输入你的名字:
小明
小明爱吃瓜

需要注意的是,input 接收并返回的值永远是字符串,如果要将其作为其他类型使用必须要进行类型转换。

错误范例

n = input('请输入一个数字\n')
print(n + 2)
请输入一个数字
3
Traceback (most recent call last):
  File ".\first.py", line 2, in <module>
    print(n + 2)
TypeError: can only concatenate str (not "int") to str

此时需要对输入的字符串进行类型上的转换。int(x) 是将 x 这个变量或值转换成 int 类型,同理还有 float(x)str(x) 等。

n = input('请输入一个数字\n')
print(int(n) + 2)
请输入一个数字
3
5

注释

当我们写了一长串代码时,很容易造成难以理解,可读性变差。
此时我们可以通过加注释的方式,来解决一段代码的含义,帮助我们理解代码。在 python 中通过加 # 号的方式来表明之后的内容是注释。

words = '小明爱吃瓜 '
# 重要的事情说三遍
print(words * 3)

输出

小明爱吃瓜 小明爱吃瓜 小明爱吃瓜

注释可以跟在代码之后无需另起一行

result = 1 + 1 # 一加一等于二

选择一个有意义的变量名

前面提到过当对变量进行命名时,我们只要避免使用其保留关键字就能防止报错。但对于编写可读性、可维护性更强的代码来说还远远不够,我们应该尽量在命名变量时使用一些有意义的名字。

比如当我们想计算一小时有多少秒时。

a = 1
b = a * 60
c = b * 60
print(c)
a1xx577 = 1
gg77s8w = a1xx577 * 60
l97www2 = gg77s8w * 60
print(l97www2)
second = 1
minute = second * 60
hour = minute * 60
print(hour)

这三种写法在 python 中执行的效果都是一样的,对于机器来说他们之前并没有区别。从我们人类的角度来看,很明显第三种写法更容易理解。

特别是 python 在设计之初本着简单易学的理念便参考了很多人类的语法表达方式, 此时再搭配上有意义的变量命名更能让我们写出健壮(可读性强,结构清晰)的代码。

练习

1.写一个“复读机”,将你每次说的话复读两遍。

请输入你要说的话:
花儿对我笑
复读第一遍: 花儿对我笑
复读第二遍: 花儿对我笑

2.输入两个数 a b,输出 a 除以 b 的余数。最好加上恰当的注释。

求余计算器
请输入 a:7
请输入 b:2
a 除以 b 的余数是: 1

解析

1.写一个“复读机”,将你每次说的话复读两遍。

inp = input('请输入你要说的话:\n')
print('复读第一遍:', inp)
print('复读第二遍:', inp)

2.写一个求余计算器。

print('求余计算器') # 计算器名称
# 接受用户输入并进行类型转换
a = int(input('请输入 a:'))
b = int(input('请输入 b:'))
# 输出计算结果
print('a 除以 b 的余数是:', a % b)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容