首页 > 技术文章 > day01笔记 Python中的数据类型

shuoliuchina 2019-09-07 11:54 原文

day01笔记 Python中的数据类型

今日内容概要

  1. 变量
  2. 常量
  3. 注释
  4. 基本数据类型
  5. 用户输入
  6. 流程控制语句

昨日内容回顾

  1. 码云的基本操作与使用
  2. Typora和Markdown语言的使用
  3. 思维导图的平台推荐和制作技巧
  4. 笔记的制作规范
  5. 博客平台介绍和制作方法
  6. 排BUG的流程与技巧

今日内容详细

变量

先介绍一个print函数,用来打印(输出)数据。

>>> print(111)
111

变量的官方定义:将程序中运行的中间值,临时存储起来,以便再次使用。

通俗来讲,变量就是给数据起一个昵称,方便调用。

下面的是一个典型的赋值变量的语句:

name = "alex"

其中,alex是赋值给变量的值,也就是数据;=代表的是赋值操作;name是变量名。通过print(name)操作来使用定义的变量名:

>>> name = "alex"
>>> print(name)
alex

变量名命名规范:

  1. 变量名只能由数字、字母和下划线组成
  2. 不能以数字开头
  3. 禁止使用python中的关键字
  4. 变量名要具有可描述性
  5. 变量名要区分大小写
  6. 不能使用中文和拼音
  7. 推荐写法:
    • 驼峰体
    • 下划线(官方推荐)

以数字为开头命名变量会报错:

>>> 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

具体的赋值操作如下图所示:

QQ图片20190905213207

第一步,在内存中开辟一块内存,把18储存在内存中。然后变量名age指向18对应的内存地址。第二步和第三步,age1age2也分别指向18的内存地址。第四步,变量名age指向20对应的内存地址,同时不再指向18。第五步,变量名age1指向19对应的内存地址,同时不再指向18。最终的结果是,age2指向18age1指向19age指向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中的TrueFalse的首字母是大写的。示例如下:

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)

推荐阅读