本节概要:
一、变量
二、基本数据类型
三、数据类型查看和转换
四、运算符
名称 | 内容 |
---|---|
变量 | 标识符和关键字 变量的意义 变量的命名规则 和命名规范 |
数据类型 | 数据类型的意义 基本数据类型 组合数据类型 复杂数据类型 进制转换 |
类型查看和转换 | type()方法 字符串转换整数和浮点数 字符串转布尔类型 整数转布尔类型 |
运算符 | 赋值运算符 算数运算符 比较运算符 逻辑运算符 位运算符 身份运算符 成员运算符 表达式的概念 |
一、变量
返回文章顶部在程序中变量就是用来临时存储数据的容器
(一)变量的引入
1、类比生活
葡萄美酒夜光杯,欲饮琵琶马上催 饮美酒:
2、 代码实现
Python 编程语言中,提供了 input()可以接受用户输入的数据 通过符号(赋值符号) = 将数据存储起来,存储在等号左边的一个容器中, 等号左边的容器,在代码中就是一个字母或者单词,称为变量。
案例:练习变量
"""
变量的使用
临时存储数据
"""
# 存储用户输入的数据
ye_guang_bei = input("倒酒:")
# 打印信息
print("葡萄美酒夜光杯,欲饮琵琶马上催")
# 打印变量【单词】
print(ye_guang_bei)
问题: 上面的代码中,用户输入的数据,使用了个 ye_guang_bei 进行了接受 - input 前面的这个字母是固定的,就只能写ye_guang_bei 吗 ?
- 不是固定的 ,input 前面的这个字母是自定义的,随便写,什么都可以
- 自定义的没有问题, 但是不能随便写,要符合规范
3、 案例操作:用户信息录入
用户需要录入个人资料、完成后程序自动打印用户的个人信息
"""
用户个人信息登记软件
录入用户资料
自动打印用户信息
"""
# 1、录入用户信息
name = input("请输入姓名:")
gender = input("请输入性别:")
age = input("请输入年龄:")
# 2、展示个人信息
print("#####################")
print("姓名:", name)
print("性别:", gender)
print("年龄:", age)
print("#####################")
input("信息打印完毕,按任意键退出.")
(二)项目规范
变量名称两种项目规范
见名知意:看到变量的名称,就大概能明白这个变量中存储了什么数据
name = "tom" #看到name名字 就意识到变量中存储的是一个名字
username = "wenwnec9" #看到username 名称,就知道存储的一个用户名称
email = "[email protected]" #看到 email 就知道存储的是邮箱
命名规则:为了让开发人员更好的阅读代码,看到一个单词就意识到这是变量
- 官方/项目推荐:下划线命名法:变量由一个或者多个英文单词组成,每个单词全 部小写,不同的单词之间使用下划线分隔
- 扩展/熟悉/了解:驼峰命名法:变量由一个或者多个英文单词组成,第一个单词全 部小写,后面每个单词首字母大写
(三)标识符和关键字
标识符: 在程序开发过程中自定义名称,就是上面我们提到的变量
关键字: Python 作为编程语言,使用了一些特殊意义的单词,这些单词别成为编程语言的关键字
查看系统关键字:
import keyword
#输出可以看到系统关键字,命名变量得时候不能与系统变量相同
print(keyword.kwlist)
小贴士:PEP8 命名规范
1.恒定量(常量)使用全大写与下划线:比如规定的不可更改的变量的值
2.私有变量使用前导下划线和小写,如:_message
3.一般的变量则应该: 全小写,用下划线隔开 表示类型的字母放在最前面 作用或要完成的工作则在中间 属于谁放在最后,或可省略 例如:numpy_creat_data_set_test 表示的意思是: 该变量是 Numpy 类型,被创建为一个数据集,用于测试(test 这个函数的内部变量)
4.当一个变量被用于保存于布尔值时,做好使用 is 或 has 作为前缀,这样更易于理解
5.当一个变量被用于保存序列时,最好使用复数形式
6.当一个变量被用于临时保存时,最好加上 temp_的前缀
7.当一个变量被用于作为字典时,应该使用显示名称,如一个用来保存个人地址的变 量:person_address
8.应当避免使用通用名称,现有名称(已有名称,变量 i,j 可以循环使用), 避免关键字,非得使用可以使用后缀下划线
9.类名使用驼峰命名法,当定义的是模块的私有类时,还可能有一个前导下划线
(四)变量的总结
(1) 什么是变量 [了解]
变量是程序中临时存储数据的容器,用自定义的一个字母或者单词表示
(2) 变量的命名规范[熟悉]
- 语法规范:名称由英文单词、数字、下划线组成,数字不能开头
- 项目规范:见名知意-看到变量名称,就大致能猜到变量中存储的什么数据
- 项目规范:下划线命名法-变量由一个或者多个英文单词组成,每个单词全部小写, 不同的单词之间使用下划线分隔;拓展~了解[驼峰命名法]
- 使用注意:变量的名称,不要写 Python 中的固定语法的词语,如 print/input
(3) 变量的使用
- 变量先声明赋值,后使用变量
- name = “damu” print(name) 正确
- print(age) 错误:因为 age 这个变量还不存在!
(4) 变量的赋值(增删改查)
#新增变量:第一次声明变量和赋值时候,称为初始化
name = "tom" #看到name名字 就意识到变量中存储的是一个名字
#修改变量:
name = "wenwnec9" #修改原有存储数据为wenwnec9
#查看数据:
print(name) #通过变量名称,直接获取数据
#删除数据:
name = "" #空白字符
del name #永久删除
(5) 扩展:变量的连续赋值
a,b,c="aa","bb","cc"
print(a,b,c)
二、基本数据类型
返回文章顶部(一)数据类型怎么来的?
**变量:** 在程序中可以临时存储数据【程序是用来还原生活场景】 类比生活中的场景~生活中的数据各种各样的 编程语言:参考生活中的案例,抽取出来基本的数据,用来描述生活中的各种事物 | 类比生活 | |:--------:| -------------:| | 电脑(事物):描述~ 颜色(字符)、品牌(字符)、重量(小数 2.5)、屏幕尺寸(小数 14.2)、CPU 型 号(字符 i7)、内存大小(整数 8)、硬盘大小(整数 512) (人):姓名(字符)、性别(字符)、年龄(整数)、体重(小数)… | 数据类型:用于描述不同事物的概念!从生活中抽取出来的
(二)数据类型有哪些?
数据类型:用于描述不同事物的概念!从生活中抽取出来的! Python 编程语言中,规范了三大类数据类型
1.基本数据类型 | |
---|---|
字符串 | 描述一段信息的,编程语言中用:str 表示字符串 字符串是使用双引号、单引号、三对引号包含起来的多个字符 |
数值 | 描述数字 |
整数 | 编程语言中用:int 表示整数 |
浮点数 | 数值+浮动的小数点~小数,编程语言中用:float 表示浮点数 |
复数 | 程序开发过程中做一些复杂数学运算时会用到(实数+虚数) 编程语言中用:complex 表示复数 x = 12 + 3j |
布尔类型 | 描述一个事情的结果[正确 True 失败 False] 布尔类型的数据,只能存储 True(真) False(假) 两个数据之一 |
2.组合数据类型 | 一个变量中用来保存多个数据(一组数据),可以使用 Python 提供的组合数据类型 组合数据类型(后面详细讲解) |
---|---|
列表 | list |
元组 | tuple |
集合 | set |
字典 | dict |
3.对象数据类型 | 对象数据类型,一个变量中可以保存一个对象数据,一个对象数据中可以存储这个对象 拥有的所有的数据(后面详细讲解) |
---|---|
引用数据类型 | |
复杂数据类型 |
(三)进制和进制转换?
整数可以编写为十进制 10 为基数 )、十六进制(以 16 为基数)、八进制(以 8 为基 )和 二进 制(以 2 为基数)形式
十六进制数以 Ox 或者 ox 开头,后面接十六进制的数字 1~9 和 A~F 。十六进制的数字编写 成大写或小写都可以 八进制数常以数
0o 0O 开头 (0 和小写或大写字母"O"),后面接着数字 0~7 二进制以 0b 或者 0B 开头后面只有 0~1
1、十进制转二进制
方法为:十进制数除 2 取余法,即十进制数除 2,余数为权位上的数,得到的商值继续除, 直到商为 0 为止
2、二级制转十进制
方法为:把二进制数按权展开、相加即得十进制数
3、十进制转八进制或者十六进制有两种方法
把十进制转八进制或者十六进制按照除 8 或者 16 取余,直到商为 0 为止
4、八进制或者十六进制转成十进制
"""
内置函数hex(I) oct(I) bin(I)把一个整数转换为这3中进制表示字符串。
并且int(str base)根据每个给定的进制把一个运行时 字符串转换整数
"""
#将十进制转换成十六进制
print(hex(10))
#将十进制转换成八进制
print(oct(10))
#将十进制转成二进制
print(bin(10))
#将十六进制字符串转换成十进制
print(int("12",16))
#将八进制字符串转换成十进制
print(int("12",8))
#将二进制字符串转换成十进制
print(int("12",2))
三、数据类型查看和转换
返回文章顶部数据类型这么多,写代码的时候应该怎么用?我怎么能确定当前变量或者数据是什么类型呢 在 Python 中我们可以通过 type()方法查看当前变量和数据的类型
常用的类型转换函数
- int()函数
(1) bool 转换成 int,True 转换成 1 False 转换成 0
(2) float 转换成 int,直接将小数砍掉
(3) str 转换成 int,只能转化由纯数字组成的字符串- float()函数
(1) bool 转换成
float,True 转换成 1.0 False 转换成 0.0
(2) int 转换成 float,直接添加.0 例如 10 10.0
(3) str 转换成 float,只能转化由纯整数或者浮点数组成的字符串- str()函数
- chr() 函数 按照 UTF-8 编码表,将十进制的数字转换成对应的字符
- eval()函数 将公式字符串转化成公式
案例操作:简易计算机
"""
数据类型:
案例操作:简易计算器 加法 案例
问题分析:输入10,输入20,预期:30
结果:1020
分析:我们在程序中,可能用错了数据类型
查看类型
python提供了type(数据)可以直接查看数据是什么类型
查看的结果,n1和n2都是字符串
字符串使用加号 +,进行运算的时候,就会拼接到一起
所以程序运行的结果不是我们想要的!
结论:input()从键盘输入的数据,都是并且只能是字符串!
解决方案
将数据,按照正确的数据类型,进行转换,就可以得到
我们预期的结果
Input()输入的数据 n1/n2 这是一个字符串
我们想要的n1/n2是一个整数
字符串数类型-> 转换-> 整数数据
int(n1)
回顾:整数数据python中用什么表示?int
>>> 0453 9053同学~找助教老师~修改昵称!
"""
# 打印 简易计算器 界面
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
print(" 加法计算器:可以按照用户")
print(" 输入的数据,自动运算加法")
print(" 最终输出结果.")
print("~~~~~~~~~~~~~~~~~~~~~~~~~~~")
input("按任意键开始操作")
# 提示用户输入数据
n1 = input("\n请输入第一个数据:")
n2 = input("\n请输入第二个数据:")
# 计算
print("n1什么类型:", type(n1)) # <class 'str'>
print("n2什么类型:", type(n2)) # <class 'str'>
res = n1 + n2
# 转换类型:将<字符串转换成整数>后运算
res2 = int(n1) + int(n2)
# 打印结果
print("加法计算机运行完毕,计算结果:", res)
print("加法计算机运行完毕(转换类型),计算结果:", res2)
四、运算符
返回文章顶部
算术运算符、逻辑运算符、赋值运算符、复合赋值运算符、关系运算符
(一)算术运算符
下面以 a=10 ,b=20 为例进行计算
需求 1:判断 12 是不是偶数
需求 2:数字逆序输出例如将 123 变成 321 输出
需求 3:求 2 的 3 次幂
在 Number 类型中包含有 4 中,int 、float、bool、复数。如果 bool 值和 int 值进行相加减 会得到什么结果呢?
例如 True+10 在混合类型的表达式中, Python 首先将被操作的对象(数字)转换成其中最复杂的操作对
象(数字)的类型,然后再对相同类型的操作对象(数字)进行数学运算 Python
划分数字类型的复杂度:bool<int<float<complex
例如当一个整数与浮点数混合时,整数首先会升级转为浮点数的值之后通过浮点数的运算法 则得到浑点数的结果
(二)赋值运算符
在 Python 中会写大量的表达式。表达式由运算符和操作数组成。像 2+3 就是一个表达式
(三)复合赋值运算符
混合了赋值运算符和算数运算符的一种语义山的快捷操作
(四)比较(关系)运算符
1、混合比较
Python 支持数字表达式的混合类型比较,同样是将简单类型转换为复杂度类型进行比较。
2、连续比较
Python 允许我们把大小比较测试连接起来,成为诸如范围测试的连续比较。 例如,表达式 (A < B < C) 测试 B 是否在 A 和C 之间 等同于布尔测 (A< B and B <C)
(五)逻辑运算符
将多个条件合并到一起,计算结果的过程
逻辑运算是有优先级的,优先级为是 not>and>or。可以添加()来提升优先级 print(True and False or not False and False)短路逻辑:
a and b and c and d 如果 a 为 False 则后面所有的 and 均不再执行,直接返回 a 的值
a or b or c or d 如果 a 为 True 则后面所有的 or 均不在执行。直接返回 a 的值
(六)成员运算符
(七)位运算符
意义:将数据的运算,转移称为底层二进制数据的运算,提高数据运算效率 python 中有各种位运算符号,通常在(加密/解密)算法开发时常用
(八)身份算符
意义:判断符号两边的数据,是否同一个对象,python 中使用 is 表示