1.2【Python】第二章 变量和简单数据类型

人工智能入门与实战第一季:python基础语法

安装PyCharm

为了更加方便我们编程,从本章开始我们将使用PyCharm开发环境,上面我们也提到了IDLE开发环境,借此机会你也可以对比一下PyCharm与IDLE谁更好用?

以下安装以mac为例:(windows类似)
下载地址:https://www.jetbrains.com/pycharm/download/#section=mac

左侧专业版收费,右侧是社区开源版本,可以满足基本开发,当然你也可以从网上找专业免费版,没错,就是通常说的破解版。

安装很简单,下载之后直接安装,无需多余配置。

PyCharm初体验

使用PyCharm写你的第一个程序,你可以创建新项目,当然也可以直接使用PyCharm打开并运行我们前面写的代码,比如love_china.py,首先打开PyCharm:

我们看到PyCharm这个面板左侧是历史打开的项目或文件,右侧是操作区,我们点击Open,找到你之前存放的love_china.py文件,双击打开。

这时会出现如下提示“找不到Python解释器”,所以此时还无法运行程序:

我们点击(上图)提示内容后面的“Configure Python interpreter”即配置Python解释器(也可以从工具栏PyCharm-Preferences打开),会打开参数设置界面(下图),选择我们已经安装的Python解释器,点击ok即可。

好了,现在可以运行love_china.py这个程序了,工具栏选择“Run-Run”即可运行,也可以在当前文件编辑界面“右键-Run”也可以运行。

如果要自己创建python文件,可以工具栏选择File-New-Python File

好了,PyCharm的安装和基本使用先写到这里,后续在学习的过程中会和你一起慢慢熟悉更多的功能。

注释

什么是注释?
注释是指在程序中添加的备注或者说明,解释器不会把它当做代码来运行,只是起到说明的作用,我们以后使用别人提供的代码时都会看到大量的注释,以便你能更好的理解他们的代码逻辑。代码中适当的添加注释是个好习惯。

1.单行注释:#
单行注释快捷键:mac系统使用command+/、windows系统使用Ctrl+/
单行注释实现批量注释:批量选中要注释的代码,mac系统使用使用command+/、windows系统使用Ctrl+/

2.多行注释:'''或"""

代码示例:

#这里是单行注释
#再来一个单行注释
#print("我已经被注释掉了,不会执行了")

'''
我是多行注释
我是多行注释
'''

"""
我也是多行注释
print("我已经被注释掉了,不会执行了")
"""

#以下将执行一个输入操作
name = input("请输入你的名字:")
print(name)  #打印输入的名字

行与缩进

不少编程语言都是使用大括号 {}来表示代码块的,而python则是使用缩进,一般采用4个空格,可以使用tab制表符,同一个代码块的语句必须包含相同的缩进空格数。

代码示例:

x = 5
y = 6

if x == y:
     print('x和y相等')
else:
     print("x和y不相等")

更多的代码书写风格官方文档里有详细说明:
https://www.python.org/dev/peps/pep-0008/

注释与缩进对应的源码:se1_ch2_note.py

变量

在计算机的世界里,一切皆数据,那么在计算机的内存中如何存取数据呢,答案是变量,变量就如同你家的门牌号,通过门牌号可以找到你的家,同样通过变量可以找到内存中的某个数据,当然前提是这个变量存储了该数据的内存地址。

变量赋值

python中变量无需声明类型,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

赋值表达式:变量名 = 表达式
表示把右边表达式的值赋值给左边的变量,准确的说是左边的变量存储了右边数据的内存地址,表达式可以是简单的数值、字符串,也可以是复杂的运算表达式。

代码示例:

a = 1
b = c = 2   #等同于b=2; c=2
d,e = 3,4   #等同于d=3; e=4
print(a,b,c,d,e)

name = 'judy'
print(name)

#使用type()函数,查看变量的类型
print(type(a))
print(type(name))

输出结果:
1 2 2 3 4
judy
<class 'int'>
<class 'str'>

标识符

什么是标识符:python中标识符包括变量名、函数名、类名、模块名、包名

标识符命名规则:
1、第一个字符必须是字母或下划线"_"
2、其他字符由字母、数字、下划线组成
3、标识符区分大小写
4、不可以使用保留字符,例如if、while、False、and、not、return、...
查看更多保留字:

import keyword
print(keyword.kwlist)

在python中,在遵守标识符命名规则前提下,开发人员通常这样来命名:
1.模块名、包名:字母一般小写,多个单词之间使用下划线连接,例如前面的例子:hello_world.py,比如python的数学库:math.py
2.函数名:字母一般小写,多个单词之间使用下划线连接,例如系统输入输出函数:print()、input()
3.变量名:字母一般小写,多个单词之间使用下划线连接,例如:name、str_length

当然除了以上的命名规则之外,以上命名我们需要尽量做到见名知意,好的命名和好的代码结构是作为一名开发人员的基础素养,会给阅读你的代码人留下非常好的印象。

变量和标识符对应的源码:se1_ch2_variables.py

数字类型

python中有三种数字类型:整数、浮点数和复数。
1、整型(int): 整数,不带小数点,例如1,100,Python3 整型没有限制大小,也可以当做长整型使用,所以Python3中没有long类型
2、浮点型(float):小数,例如9.99,浮点型也可以使用科学计数法表示,例如999e-2
3、复数(complex):复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。(了解)

算术运算符

运算符 描述 举例 结果
+ 5+6 11
- 2-1 1
* 3*6 18
/ 浮点除法 5/2 2.5
// 整数除法 5//2 2
% 取余/模 5%2 1
** 2**3 8

注意一下正、负数的取整的区别,代码示例:

print(-9 // 2)
print(9 // 2)

输入结果:
-5
4

数学函数

函数 描述 举例 结果
abs(x) x 的绝对值 abs(-4) 4
int(x) 将 x 转换为整数 int(3.6) 3
float(x) 将 x 转换为浮点数 float("123") 123.0
divmod(x,y) 返回一对商和余数 divmod(5,3) (1, 2)
pow(x, y) x 的 y 次幂 pow(2,3) 8
round(x[, n]) 四舍五入,n表示保留小数位数 round(5.9) 6
math.floor(x) 返回数字的下舍整数 math.floor(5.9) 5
math.ceil(x) 返回数字的上入整数 math.ceil(5.1) 6

以上是一些常用的数学函数,列出来为了让你可以有个直观的感受和了解,我们使用时到官网查找即可,官网标准库地址如下:
https://docs.python.org/zh-cn/3/library/index.html#library-index

文档中包含了数学函数、随机函数、幂函数、对数函数、三角函数等各种函数的说明。

代码示例:

print(abs(-4))
print(int(3.6))
print(float("123"))
print(divmod(5,3))
print(pow(2,3))
print(round(5.9))

#记得先导入math模块:import math,上面的方法为啥不用导入对应的模块?原因很简单:以上方法属于python解释器的内置函数(Built-in Functions)
print(math.floor(5.9))
print(math.ceil(5.1))

输出结果:
4
3
123.0
(1, 2)
8
6
5
6

复合赋值运算符

复合赋值运算符是对正常运算符赋值的一种简化,下面以加、减、乘、除举例,其他类似:

运算符 举例 等价于
+= s += 3 s = s + 3
-= s -= 3 s = s - 3
*= s *= 3 s = s * 3
/= s /= 3 s = s / 3

代码示例:

#例如s=1,s加1之后的值再存储到s中
s = 1
s += 1  #等价于 s = s + 1
print(s)

输出结果:
2

布尔值

布尔类型只有两个值: True 和 False,多用在条件语句中,表示条件的真与假

比较运算符

所有比较运算符返回非0表示真,返回0表示假,这分别与布尔值True和False等价
以下假设a = 5, b = 8

运算符 描述 举例 结果
== 等于 - 比较对象是否相等 a == b False
!= 不等于 - 比较两个对象是否不相等 a != b True
> 大于 - 返回x是否大于y a > b False
< 小于 - 返回x是否小于y a < b True
>= 大于等于 - 返回x是否大于等于y a >= b False
<= 小于等于 - 返回x是否小于等于y a <= b True

代码示例1:

#你中500w了吗?
is_500w = True
print(type(is_500w), is_500w)
if is_500w :
    print("好开心")
else:
    print("再接再厉")

输出结果:
<class 'bool'> True
好开心

代码示例2:

x = 5
y = 6

print(x==y)

if x == y:
    print('x和y相等')
else:
    print("x和y不相等")

if x < y:
    print("x小于y")
else:
    print("x大于等于y")

输出结果:
False
x和y不相等
x小于y

所有比较运算符返回非0表示真,返回0表示假,这分别与布尔值True和False等价,怎么理解?举例如下,观察打印结果:
代码示例:

if 5:
    print('5非0,表示True')

if True:
    print('True')

if 0:
    pass    #反正这个分支也不会执行,就用pass略过
else:
    print("0为假,表示False")

if False:
    pass
else:
    print("False")

输出结果:
5非0,表示True
True
0为假,表示False
False

逻辑运算符

以下假设变量 a 为 5, b为 6:

运算符 逻辑表达式 描述 举例
and x and y 布尔"与" : 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 6
or x or y 布尔"或" : 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 5
not not x 布尔"非" : 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not 5 返回False

以下示例描述了逻辑运算的基本逻辑,试着修改case1和case2的值,看一下输出结果有什么不一样吧?
示例代码:

case1 = 0    #把我改成非0的值试试
case2 = 3    #把我改成0试试
if (case1 and case2):
    print('case1 和 case2 都为True')
else:
    print('case1 和 case2 至少有一个不为True')

if (case1 or case2):
    print('case1 和 case2 至少有一个为True')
else:
    print('case1 和 case2 都不为True')

if (not case1):
    print('case1为False')
else:
    print('case1为True')

逻辑运算符有啥用?用处太大了,现实世界使用逻辑运算符的场景太多了,比如要想进入BAT,条件必须是211或985,且研究生学历,那么这个条件语句可以这样写:

(case1 == "211" or case1 == "985") and case2 == "研究生"

数字类型、各种运算符对应的源码:se1_ch2_numeric.py

本章作业

1、解一道数学题,给定半径r=5,计算圆的周长

2、某小学考试评优三个等级,80分(含)以上:优秀、60-79分:一般、60以下:不及格,小明数学考试得了59分,通过比较运算打印出小明的评优结果

本章作业对应的源码:se1_ch2_home_work.py

本章总结

从本章开始已经进入python语言的正式学习中了,当然还是最基础的阶段,本章主要讲了变量、数字类型和布尔类型的几种数据类型,还有各种常见的运算符。

当然python中的数据类型还远远不止数字类型和布尔类型,还有字符串、各种序列、字典,我们下一章再陆续推出。

“猪弟爸爸”碎碎念

今天说一个比较容易犯的错误,就连我自己在今天的代码编写中也出现过,就是中英文输入法,是的,我在前面提到过,比如代码中的括号、引号、分号,都必须是英文输入法,否则会报错。

但是对于初学者而言如果出现上述错误可能会浪费掉你的很多时间去排查,所以,我们要避免这个问题。

还有需要提醒的是记得学会使用官方文档,因为这才是一手资料,而且python官方文档支持中文,这在其他编程语言中是很少见的,说明当今中国开发者已经成为一群不可忽视的力量了,当然如果你的英文很好可以直接切到英文模式。

今天讲的内容在官方网站都可以找到对应的文档:
https://docs.python.org/zh-cn/3/reference/index.html(Python语言参考)
https://docs.python.org/zh-cn/3/library/index.html(Python 标准库)

我是猪弟爸爸:zhudipapa,有问题给我留言,我们下节见!

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

推荐阅读更多精彩内容