Learn day1 变量/数据类型
1.Python 简介
(1) 1989年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido).
(2) python具有非常多并且强大的第三方库,使得程序开发起来得心应手.
(3) Python程序员的信仰:人生苦短,我用python!
开发方向: 机器学习人工智能 ,自动化运维&测试 ,数据分析&爬虫 ,python全栈开发
(4) Python 版本
Python 2.x 版本,官方在 2020 年停止支持,原码不规范,重复较多。 Python 3.x 版本,功能更加强大且修复了很多bug,原码清晰,简单。
(5) 编译型与解释型语言区别
编译型:一次性,把所有代码编译成机器能识别的二进制码,在运行 代表语言:c,c++ 优点: 执行速度块 缺点: 开发速度慢,调试周期长 解释型:代码从上到下一行一行解释并运行 代表语言:python,php 优点: 开发效率快,调试周期短 缺点: 执行速度相对慢
*linux 操作系统默认支持python语言,可直接使用
(6) Python的解释器
a. Cpython(官方推荐) 把python转化成c语言能识别的二进制码 b. Jpython 把python转化成java语言能识别的二进制码 c. 其他语言解释器 把python转化成其他语言能识别的二进制码 d. PyPy 将所有代码一次性编译成二进制码,加快执行效率(模仿编译型语言的一款python解释器)
2. 注释
(1)注释的分类
1. 单行注释
# 单行注释 以#号开头,右边的所有东西都被当做说明文字,程序不进行编译运行。
例子如下: # print(‘hello world’) 2. 多行注释
三个单引号 或 三个双引号
例子如下: '''(""") 这是第一行 这是第二行 '''(""")
(2)注释的注意点
如果外面使用三个单引号,里面使用三个双引号,反之亦然。
(3)注释的排错性
先注释一部分代码,然后执行另外一部分,看看是否报错,逐层缩小报错范围,找到最终错误点。
3. 变量
(1)变量的概念
变量: 可以改变的量,实际具体指的是内存中的一块存储空间
常量: 就是不可改变的量,python当中没有明确定义常量的关键字,所以约定俗成把变量名大写就是常量,表示不可改变
(2)变量的声明
#方式1
a = 1
b = 2
print(a)
print(b)
#方式2
a,b = 3,4
print(a)
print(b)
#方式3
a=b=99
print(a,b)
(3)变量的命名
#字母数字下划线 ,首字符不能为数字
#严格区分大小写 ,且不能使用关键字
#变量命名有意义 ,且不能使用中文哦
(4)变量的交换
#a,b = b,a
(5)不能作为变量名使用
# 打印python 所有关键字
# import 引入 keyword 模块 有一个属性kwlist 模块.属性 => 获取所有的关键字 拿来直接使用即可.
import keyword
res = keyword.kwlist
print(res)
# 如下关键字都不能作为变量名使用
[
'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'
]
"""
# Number部分 变量的缓存机制
1.对于整型而言,-5~正无穷范围内的相同值 id一致
var1 = 5
var2 = 5
var1 = -6
var2 = -6
print(id(var1),id(var2))
2.对于浮点数而言,非负数范围内的相同值 id一致
var1 = -5.88
var2 = -5.88
print(id(var1),id(var2))
3.布尔值而言,值相同情况下,id一致
var1 = True
var2 = True
print(id(var1),id(var2))
4.复数在 实数+虚数 这样的结构中永不相同(只有虚数的情况例外)
var1 = 4+2j
var2 = 4+2j
print(id(var1) , id(var2))
var1 = 4j
var2 = 4j
print(id(var1),id(var2))
5.字符串 和 空元组 相同的情况下,地址相同
var1 = "你"
var2 = "你"
print(id(var1) ,id(var2) )
var1 = ()
var2 = ()
print(id(var1) ,id(var2))
6.列表,元组,字典,集合无论什么情况 id标识都不同 [空元组例外]
var1 = [1,2,3]
var2 = [1,2,3]
print(id(var1),id(var2))
# res = "我爱你" * 3
# print(res)
4. Python 六大标准数据类型
(1)Number 数字类型 (int float bool complex)
(2)str 字符串类型
(3)list 列表类型
(4)tuple 元组类型
(5)set 集合类型
(6)dict 字典类型
4.1 数字类型 Number ( int )
intvar = 156
print(intvar)
# type 获取变量的类型 type()
res = type(intvar)
print(res)
# id 或者变量所指向的这个值的内存地址
res = id(intvar)
print(res)
# 二进制整型 0b表示
intvar = 0b1010
print(intvar)
print(type(intvar))
print(id(intvar))
# 八进制整型 0o表示
intvar = 0o10
print(intvar)
# 获取类型
print(type(intvar))
# 获取地址
print(id(intvar))
# 十六进制 0x表示
intvar = 0xff
# 获取类型
print(type(intvar))
# 获取地址
print(id(intvar))
4.2 数字类型 Number ( float bool complex)
(1) float 浮点型 就是小数
# 表示方法1
floatvar = 3.14
print(floatvar)
print( type(floatvar) )
print( id(floatvar) )
# 表示方法2 科学计数法
floatvar = 5.13e4 # 小数点向右移动
floatvar = 5.13e-2# 小数点向左移动
print(floatvar)
(2) bool 布尔型 ( True 真的 False 假的)
boolvar = True
boolvar = False
print(boolvar)
print(type(boolvar))
print(id(boolvar))
(3) complex 复数
"""
复数: 实数 + 虚数
比如 3+4j
3是实数
4j是虚数
什么是j?
如果有一个数,它的平方是-1,那么这个数就是j
科学家认为有,表达高精度类型.
"""
# 表达方式1
complexvar = 3-8j
complexvar = 5j
print(complexvar)
print(type(complexvar))
print(id(complexvar))
# 表达方式2 complex 函数,转换成复数
'''
语法:
complex(实数,虚数)
'''
complexvar = complex(4,2)
complexvar = complex(4,-2)
print(complexvar)
4.3 字符串类型 : 用引号引起来的就是字符串
"""
# 转义字符: 语法 \ 来进行转义
(1)把有意义的字符变得无意义
(2)把无意义的字符变得有意义
\n => 换行
\r\n => 换行
\r => 把\r后面的字符串直接拉到当前行的行首,
\t => 缩进 (水平制表符) 一般一个\t 是4个空格的间距.
"""
1.单引号
strvar = '我爱你亲爱的菇凉,见到你我就心慌'
print(strvar)
print(type(strvar))
2.双引号
strvar = "黑夜给了我黑色的眼睛,但我却用它翻白眼"
strvar = "黑夜给了我黑色的眼睛,\n但我却用它翻白眼"
strvar = "黑夜给了我黑色的\n眼睛,\r但我却用它翻白眼"
strvar = "黑夜给了我黑色的\r\n眼睛,\t但我却用它翻白眼"
strvar = "黑夜给了我黑色的'眼睛',但我却用它翻白眼"
# \ 除了可以把无意义的字符变得有意义,也可以吧有意义的字符变得无意义.
print(type(strvar))
3.三引号 可以支持跨行操作
strvar = """轻轻的我走了,正如我轻轻的来
我轻轻的挥一挥手,不带走一片云彩
"""
strvar = '''轻轻的我走了,正如我轻轻的来
我轻轻的挥一挥手,不带走一片云彩
'''
print(strvar)
4.元字符串 r+"字符串" 让转义字符失效
strvar = r"asdfasdf\tsdfsd\n3242"
print(strvar)
strvar = r"E:\ngix相关视频"
print(strvar)
5.字符串的格式化
"""
%d 整型占位符
%f 浮点型占位符
%s 字符串占位符
语法: "字符串" % (值1,值2,.....)
"""
# %d
strvar = "树则会买了%d个面膜" % (10)
print(strvar)
# %2d 默认数字居右
strvar = "郭一萌买了%2d个布加迪威龙" % (7)
print(strvar)
# %-2d 默认数字居左
strvar = "郭一萌买了%-2d个布加迪威龙" % (7)
print(strvar)
# %f 小数点部分自动保存6位小数
strvar = "黄花昨天开工资了,发了%f元" % (9.989)
print(strvar)
# %.2f 小数点保留二位 存在四舍五入
strvar = "黄花昨天开工资了,发了%.2f元" % (9.989)
print(strvar)
# %s 字符串占位符
strvar = "%s" % ("好看的皮囊千篇一律,有趣的灵魂300多斤")
print(strvar)
# 综合案例
strvar = "%s开工资了,发了%.2f元,昨天晚上买了%d个娃娃,心情%s" % ("王成全",99.1234,2,"感觉身体被掏空")
print(strvar)
4.4 容器类型数据 (列表 list 元组 tuple)
4.4.1 list 列表 可获取,可修改,有序
1.定义一个空列表
listvar = []
print(listvar)
print(type(listvar))
2.获取列表元素
# 0 1 2 3 4 正向索引
listvar = [55,3.155,True,3+9j,"abcdf"]
# -5 -4 -3 -2 -1 逆向索引
res = listvar[2]
print(res)
# 瞬间拿到列表最后一个元素
res = listvar[-1]
print(res)
# 通用写法 ,用len
'''
len 可以获取容器类型数据的长度,(元素总个数)
'''
res = listvar[4]
print(res)
res = len(listvar)
print(res) # 5
# 5 - 1 = 4
res = listvar[ len(listvar)-1 ]
print(res)
3.修改列表元素
listvar[0] = "银燕"
print(listvar)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4.4.2 tuple 元组 可获取,不可修改,有序
1.定义一个空元组 *********
tuplevar = ()
print(tuplevar,type(tuplevar))
# 判断它是否是元组,在于,逗号 *********
tuplevar = ("abc",)
tuplevar = 1,2
print(tuplevar,type(tuplevar))
# 定义一个元组
tuplevar = ("李祥海","王成全","赖廷","银燕","毕杨生")
2.获取元组当中的值
res = tuplevar[2]
print(res)
3.修改元组中的值? 不可以
# tuplevar[0] = 123 error
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4.4.3 str 可获取 不可修改 有序
1.字符串可以通过索引下标取值
2.可获取
# 0 1 2 3 45 6 7 9 正向索引
strvar = "瞅你一眼,浑身哆嗦"
# -9-8-7-6-5-4-3-2-1 逆向索引
# 获取"眼"字
res = strvar[3]
res = strvar[-6]
print(res)
3.可以修改么? 不可修改
# strvar[3] = 123 error
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4.4.4 集合 set (集合是用来做交叉并补操作的)
"""自动去重,无序"""
1.定义一个空集合
# setvar = {} # 这个dict字典类型
# print(setvar,type(setvar))
setvar = set()
print(setvar,type(setvar))
setvar = {"刘德华","张学友","郭富城","王文"}
print( setvar , type(setvar) )
setvar = {"刘德华","张学友","郭富城","王文","王文"}
print(setvar)
2.集合能够获取值么? 不行
# res = setvar[0] error
3.集合能够修改值么? 不行
# setvar[0] = 199 error
setvar = {1,2,"a",(1,2,3,{"a":1}) }
print(setvar)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4.5 字典dict
"""
python 3.6版本之前无序
python 3.6版本之后有序(表面上有序,本质上无序)
键值对存储的数据,有序
语法: {键1:值1 , 键2:值2 , 键3:值3 }
"""
1. 定义一个空字典
dictvar = {}
print(dictvar, type(dictvar))
dictvar = {"top":"夏侯惇" , "middle":"亚瑟","bottom":"鲁班七号","jungle":"刘备","support":"蔡文姬"}
2. 通过键获取字典中的值
res = dictvar["middle"]
print(res)
3. 修改字典的中的值
dictvar["bottom"]="孙尚香"
print(dictvar)
4. 字典中的键和集合中的值有要求,需要可哈希数据
"""
可哈希数据:(不可变数据) Number(int , float , bool ,complex) str , tuple
可哈希数据可以作为字典的键和集合的值,剩下的都不可以
不可哈希数据:(可变数据) list dict set
字典中的键 推荐使用按照变量命名的字符串去声明最为理想;
"""
dictvar = {5:1 , 3.78:12 , True:90 , 6+8j:"abc" , "你好":99,(1,2,3):1122}
print(dictvar)
4.6 自动转换类型
# ### 自动类型转换 (Number => int bool float complex)
"""
精度从低->高 排行
bool -> int -> float -> complex
如果两个不同的类型进行运算,
默认低精度向高精度转化
"""
# True -> int 1 False -> int 0
# bool + int
res = True + 14
print(res)
# bool + float # 把False 转换成浮点型0.0 在加上float
res = False + 4.99
print(res)
# bool + complex # 把True 转换成复数1+0j 在加上complex
res = True + 3+4j
print(res)
# int + float # 把int 转换成浮点型7.0 再加上float
res = 7 + 3.66
print(res)
# int + complex # 把int 转换成复数 3+0j 再加上complex
res = 3 + 9-2j
print(res)
# float + complex 把float 转化成复数6.91+0j 再加上complex
res = 6.91 + 11-6j
print(res)
4.7 Number 类型强制类型转换
# ### Number 部分的强制类型转换 (int float bool complex)
var1 = 23
var2 = 6.78
var3 = True
var4 = 3+2j
var5 = "1234"
var6 = "abcd121"
1.强制转换成int
res = int(var2)
res = int(var3)
res = int(False)
# res = int(var4) error
res = int(var5)
# res = int(var6) error
print(res , type(res))
2.强制转换成float
res = float(var1)
print(res)
res = float(var3)
print(res)
res = float(var5)
print(res)
3.强制转换成complex
res = complex(var1)
print(res)
res = complex(var2)
print(res)
res = complex(var3)
print(res)
res = complex(var5)
print(res)
4.强制转换成bool 要么返回True 真的 要么返回False 假的
res = bool(var4)
res = bool(var6)
res = bool(None)
print(res)
"""
布尔类型为假得10种情况
0 0.0 False 0j '' [] () set() {} None
None 代表空的,什么也没有,一般用在变量初始化的时候
"""
# 初始化变量的时候用
ab = None
Learn day1 变量/数据类型的更多相关文章
- JAVA 变量 数据类型 运算符 知识小结
---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...
- dos命令-环境变量-数据类型-命名规范
JAVA第一天笔记--dos命令-环境变量-数据类型-命名规范 1.能够阐述JDK和JRE之间区别 JDK(Java Development Kit)是提供给开发人员使用的JAVA开发工具包(java ...
- Go-获取变量数据类型
package main import ( "fmt" "reflect" //这个包里的TypeOf方法获取变量数据类型 ) func main(){ b : ...
- Java1变量数据类型和运算符
day02_变量数据类型和运算符 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class jh_01_数据类型说明 { public ...
- Python. Day1. 之初识 变量数据类型
稍后添加 一 介绍 二 变量
- JavaScript 变量,数据类型
这篇笔记呢,咱记录下变量和数据类型的基础知识,因为两者有联系 所以放在一起记录 1 如何声明变量 变量声明使用var关键字,下面举一些变量声明的例子: <!DOCTYPE html> &l ...
- Swift学习--常量.变量.数据类型的使用(一)
一.Swift中的常量和变量 /* Swift 中定义常量和变量用let/var let 代表定义一个常量 var 代表定义一个变量 Swift 中代表定义常量和变量不需要写数据类型,编译器辉根据我们 ...
- 变量-数据类型-对象-如何编写python脚本
标识符的命名规则变量是标识符的例子. 标识符 是用来标识 某样东西 的名字.在命名标识符的时候,你要遵循这些规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’).标识 ...
- Day01_变量,数据类型_程序交互_流程控制
python执行的两种方式: 1,交互的方式: 优点:可以及时调试程序,调试方法 缺点: 无法永久保存代码 2,保存在文件中执行 优点:可以永久保存代码,在执行的时候调用 缺点:不能即时调试代 ...
随机推荐
- PageObject课程培训记录
前言 昨晚的培训课程讲了PO设计模式,对于PO模式我们需要去了解关于为什么要使用PO,而不使用PO是什么情况?什么是PO模式?PO怎么去使用? 第一,为什么要使用PO,而不使用PO是什么情况? 我们先 ...
- Vue编写的页面部署到springboot网站项目中出现页面加载不全问题
问题描述: 在用Vue脚手架 编写出一个页面之后, 部署到后台项目中, 因为做的是一个页面 按理来说 怎么都能够在服务器上运行 , 我也在自己的node环境测试 , 在同学的springboot上运行 ...
- python数据结构之二叉树的建立实例
先建立二叉树节点,有一个data数据域,left,right 两个指针域 # coding:utf-8 class TreeNode(object): def __init__(self,left=N ...
- C\C++中strcat()函数
转载:https://blog.csdn.net/smf0504/article/details/52055971 C\C++中strcat()函数 ...
- 小程序将base64的多张图片,传到tp5后台
zhu要是前端传过来的数据是base64的数据库存储不了base64的数据,因存储量太过于大,因此后台要将base64的数据转换成,34124323534.jpg等格式的,数据库才可将其存储 源码暂时 ...
- Oracle报错>记录被另外一个用户锁定
原因 当一个用户对数据进行修改时,若没有进行提交或者回滚,Oracle不允许其他用户修改该条数据,在这种情况下修改,就会出现:"记录被另外一个用户锁定"错误. 解决 查询用户.数据 ...
- S3C6410触摸屏驱动分析
一. device的注册1.0 两个注册//在smdk6410_machine_init中既注册了touchscreen的私有信息也注册了ts资源 1 在arch/arm/mach-s3c64xx/m ...
- 实验报告系列:实验一 HTML语言的简单网页制作
实验一 HTML语言的简单网页制作 一.实验目的: 1.掌握常用的HTML语言标记: 2.利用文本编辑器建立HTML文档,制作简单网页. 3.学习将其它格式的文档转换成HTML格式的文档 二.实验内容 ...
- 多测师讲解_python_pycharm基本实用操作__保存代码_
pycharm中中保存代码的方式: 方式一: 方式二: 第一步: 第二步:
- 阿里百秀后台管理项目笔记 ---- Day01
摘要 在此记录一下阿里百秀项目的教学视频的学习笔记,部分页面被我修改了,某些页面效果会不一样,基本操作是一致的,好记性不如烂笔头,加油叭!!! step 1 : 整合全部静态页面 将静态页面全部拷贝到 ...