day01笔记 Python中的数据类型
今日内容概要
- 变量
- 常量
- 注释
- 基本数据类型
- 用户输入
- 流程控制语句
昨日内容回顾
- 码云的基本操作与使用
- Typora和Markdown语言的使用
- 思维导图的平台推荐和制作技巧
- 笔记的制作规范
- 博客平台介绍和制作方法
- 排BUG的流程与技巧
今日内容详细
变量
先介绍一个print
函数,用来打印(输出)数据。
>>> print(111)
111
变量的官方定义:将程序中运行的中间值,临时存储起来,以便再次使用。
通俗来讲,变量就是给数据起一个昵称,方便调用。
下面的是一个典型的赋值变量的语句:
name = "alex"
其中,alex
是赋值给变量的值,也就是数据;=
代表的是赋值操作;name
是变量名。通过print(name)
操作来使用定义的变量名:
>>> name = "alex"
>>> print(name)
alex
变量名命名规范:
- 变量名只能由数字、字母和下划线组成
- 不能以数字开头
- 禁止使用python中的关键字
- 变量名要具有可描述性
- 变量名要区分大小写
- 不能使用中文和拼音
- 推荐写法:
- 驼峰体
- 下划线(官方推荐)
以数字为开头命名变量会报错:
>>> 1a = 'alex'
File "<stdin>", line 1
1a = 'alex'
^
SyntaxError: invalid syntax
驼峰体和下划线命名变量示例,很显然下划线的命名法更直观些:
AlexOfOldboy = 89 # 这是驼峰体
alex_of_oldboy = 89 # 这是下划线
Python中的变量名是区分大小写的:
>>> name = 'alex'
>>> Name = 'leo'
>>> print(name)
alex
>>> print(Name)
leo
Python中的关键字:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or','pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
print
可以打印多个内容,以逗号分隔:
>>> age1 = 19
>>> print(age, age1)
18 19
请看下面一段赋值操作:
age = 18
age1 = age
age2 = age1
age = 20
age1 = 19
print(age,age1,age2)
最终打印出来的结果是:
20 19 18
具体的赋值操作如下图所示:
第一步,在内存中开辟一块内存,把18
储存在内存中。然后变量名age
指向18
对应的内存地址。第二步和第三步,age1
和age2
也分别指向18
的内存地址。第四步,变量名age
指向20
对应的内存地址,同时不再指向18
。第五步,变量名age1
指向19
对应的内存地址,同时不再指向18
。最终的结果是,age2
指向18
,age1
指向19
,age
指向20
。
常量
在Python中,没有严格意义的常量。大家约定俗成的是,变量名大写的变量就被视为常量,在开发过程中不会被轻易修改。例如:
ID = 110120130140150
ID = "123123213" # (不建议修改)
变量与常量的应用场景:
- 变量用于我们后期开发使用
- 常量用于配置文件中
注释
注释的作用是给一些晦涩难懂的代码进行标注或解释。注释后的代码不会被执行。
Python中的注释分为两种:
- 单行注释(当行注释):用
#
开头表示 - 多行注释:用三对
“ ”
或‘ ’
包裹,可以换行
具体示例为:
# 这个是单行注释的示例
# 换行之后要在开头加一个#
"""
窗前明月光,
玻璃好上霜.
要不及时擦,
整不好就脏.
"""
基础数据类型
在Python中基础的数据划分(数据类型)总共有7种,今天主要讨论其中的三种:str(字符串),int(整型),bool(布尔值)
整型
整型数据在Python中的关键字为int
。整型数据的主要用途是进行计算和比较。
整型数据的基本用法和操作如下:
a = 10
b = 5
print(a - b)
print(a + b)
print(a * b) # * 乘
print(a / b) # / 除
字符串
字符串在Python中的关键字为str
。在Python中,只要用引号引起来的就是字符串。
字符串使用示例:
a = "你好"
b = '你好'
"""你好""" # 三引号可以表示多行字符串,多行注释的原理就是一个未赋值的字符串
'''你好'''
print(a,b)
a = "123"
b = 123
需要注意的是,使用print
函数时,不要在变量的两端加引号:
# 你们会出现的问题
a = "alex"
b = "123"
print("a,b")
print(a,b)
字符串的+
操作:
a = "alex"
b = "三哥"
c = a + b # 字符串拼接
print(c)
a = "alex dsb"
b = "三哥"
c = a + b # 字符串拼接
print(c)
字符串的*
操作
a = "坚强"
print(a * 8) # 字符串的乘法
a = "坚持"
b = "Python26"
print(a + b * 5)
字符串的操作小结:
+
拼接: 必须都是字符串才能相加*
拼接: 字符串和数字相乘
布尔值
布尔值在编程中用来表示真假。在Python中,真
用True
表示;假
用False
表示。只有Python中的True
和False
的首字母是大写的。示例如下:
print(3 > 2) # True 成立
print(2 > 3) # False 不成立
用户交互
在Python中,用input()
函数实现用户和程序间的交互。input
是输入的意思。使用示例如下:
qq_user = input("QQ账号:") # 坑 -- 阻塞
qq_pwd = input("QQ密码:")
print(qq_user,qq_pwd)
当程序运行到input
语句时,会发生阻塞,等待用户进行输入。程序会一直保持阻塞状态,除非用户输入内容或终止程序。
需要注意的是,在Python 3中input
获取的内容全都是字符串。因为这样的原因,下面的程序会报错:
num = input("请输入数字:")
print(num + 5)
这两行代码的本意是,当用户输入一个数字之后,程序自动输出一个比输入数字大5的数字。但是因为input
获取的内容是字符串,字符串是不能和整型数字进行加和操作的,故而程序报错。我们可以使用tpye()
函数查看变量的数据类型。
num = input("请输入数字:")
print(type(num)) # 查看数据类型
输出的结果为:
请输入数字:12
<class 'str'>
通过使用int()
函数可以将字符串转化为整型数据。同样地,也可以使用str()
函数,把整型数据转换成字符串。
a = int('12') # 字符串转成整型
b = str(23) # 整型转成字符串
需要注意的是,使用int()
函数将字符串转换为整型时,字符串中的内容必须全部都是数字,否则会报错:
>>> int('abc123')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'abc123'
那么我们上面的例子就可以改成这个样子:
num = input("请输入数字:")
a = int(num)
print(a + 5)
这样的话,当我们输入一个数字之后,通过int()
函数,输入内容转换成为整型,然后就可以进行加和操作了:
请输入数字:3
8
也可以把inpu()
操作直接放到int()
函数中:
num = int(input("请输入数字:"))
print(num + 5)
用户交互总结:
input()
是输入,获取到的内容都是字符串type()
函数用来查看数据类型int('字符串')
可以将字符串转换成整型,字符串中的内容必须全部都是数字str(整型)
函数可以将整型转换成字符串
流程控制语句
流程控制语句,也就是条件语句,通过选择判断,决定下一步的操作内容。例如:如果是男的,就来看我。
流程控制语句的关键字是if
,是如果
的意思。流程控制语句使用冒号:
表示语句结束。
Python中使用缩进体现代码间的从属关系。一般使用四个空格或一个Tab
键代表一次缩进。需要注意的是,编程时,不要混合使用Tab
键和空格,否则一旦报错,很难找到问题的所在。
知识点补充:在Python中,=
表示的是赋值
操作,会将等号右边的值赋值给等号左边的变量。而==
表示的是判断两边的值是否相等,也就是等于
的意思。
单if
单if
流程控制语句的伪代码格式为:
如果 条件:
缩进 结果
具体示例如下:
sex = "男"
if sex == "男":
print("就来看我")
print(sex)
输出的结果为:
就来看我
男
if else 二选一
if else
二选一流程控制语句的伪代码格式为:
如果 条件:
缩进 结果
否则:
缩进 结果
具体示例如下:
print(111)
if 3>2:
print(11)
print(22)
else:
print(333)
print(444)
打印出的结果为:
111
11
22
444
if elif elif 多选一或零
对于if elif elif
多选一或零流程控制语句而言,只要有一个条件成立,其他的语句将不被执行。其伪代码格式为:
如果 条件:
缩进 结果
再如果 条件:
缩进 结果
再如果 条件:
缩进 结果
再如果 条件:
缩进 结果
具体示例如下:
if 3>5:
print(1)
elif 3>7:
print(2)
elif 5>2:
print(4)
elif 3>1:
print(5)
输出结果为:
4
if elif elif else 多选一
if elif elif else
多选一流程控制语句的伪代码格式为:
如果 条件:
缩进 结果
再如果 条件:
缩进 结果
再如果 条件:
缩进 结果
否则:
缩进 结果
具体示例如下:
if 3>12:
print(1)
elif 3>11:
print(2)
elif 4>12:
print(3)
else:
print(5)
输出的结果为:
5
if 嵌套:
if
嵌套流程控制语句的伪代码格式为:
如果 条件:
缩进 如果 条件:
缩进 结果
具体示例如下:
sex = "男"
age = 48
if sex == "女":
if age == 18:
print("进来坐坐")
else:
print("隔壁找三哥")
else:
print("去对门找alex")
输出结果为:
去对门找alex
if if if 多选多
if if if
多选多流程控制语句的伪代码格式为:
如果 条件:
缩进 结果
如果 条件:
缩进 结果
如果 条件:
缩进 结果
具体示例如下:
if 43>1:
print(11)
if 43>2:
print(11)
if 43>3:
print(11)
输出的结果为:
11
11
11
补充内容:and
是和
的意思。只有当and
两端的值都为真
时,会返回True
,否则都会返回False
:
user = input("username:")
pwd = input("password:")
and 是和
if user == "alex" and pwd == "alex123":
print(111)