tnblog
首页
视频
资源
登录

pyton注释、变量、数据类型、变量缓存、类型转换

5814人阅读 2022/2/22 19:51 总访问:89567 评论:0 收藏:0 手机
分类: python
  1. # 变量的声明
  2. # 方法 1
  3. a = 1
  4. b = 2
  5. print(a)
  6. print(b)
  7. # 方法 2
  8. c, d =34
  9. print(c, d)
  10. # 变量的命名
  11. # 字母数字下划线,首字符不能为数字
  12. # 严格区分大小写,且不能用关键字
  13. # 变量命名有意义,且不能用中文
  14. # import 引入 keyword 模块名
  15. import keyword
  16. res = keyword.kwlist #kwlist 可以打印出所有的关键字
  17. print(res)
  18. # Number (int float bool complex)
  19. # int 整型 (正整型 0 负整型)
  20. intvar = 123
  21. print(intvar)
  22. # type 获取一个变量的类型 type(值)
  23. na_1 = type (intvar)
  24. print(na_1)
  25. # id 获取该变量所指向的地址 id (值)
  26. na_1 = id(intvar)
  27. print(na_1)
  28. # 打印二进制
  29. intvar = 0b101
  30. print(intvar)
  31. print(type(intvar))
  32. print(id(intvar))
  33. # 打印八进制
  34. intvar = 0o127
  35. print(intvar)
  36. print(type(intvar))
  37. print(id(intvar))
  38. # 打印十六进制
  39. intvar = 0xff
  40. print(intvar)
  41. print(type(intvar))
  42. print(id(intvar))
  43. # (1)float 浮点型 小数
  44. # 表达一
  45. floatvar = 3.15
  46. print(floatvar, type(floatvar))
  47. # 表达二
  48. floatvar = 5.35e-3 # e 小数点向左移动三位
  49. print(floatvar, type(floatvar))
  50. floatvar = 5.35e+3 # e 小数点向右移动三位
  51. print(floatvar, type(floatvar))
  52. # (2) bool 布尔类型
  53. boolvar = True
  54. boolvar = False
  55. print(boolvar, type(boolvar))
  56. # (3) complex 复数类型
  57. # 复数: 实数加虚数
  58. # j: 如果一个书的平方等于-1, 那么这个数就是j
  59. # 科学家认为有,表达一个高精度的类型
  60. # 方式 1
  61. complexvar = 3 + 4j
  62. print(complexvar, type(complexvar))
  63. # 方式 2  complex(实数, 虚数)
  64. complexvar = complex(-5-2)
  65. print(complexvar)
  66. # 容器类型数据 (str list tuple dict set )
  67. # str 字符串类型
  68. # (1) 单引号
  69. strvar = '爱杨奇超'
  70. print(strvar, type(strvar))
  71. # (2) 双引号
  72. strvar = "爱\n杨奇超"
  73. print(strvar, type(strvar))
  74. # (3) 三引号 (支持跨行 无需对单双引号重新转义)
  75. strvar = """本来无一物
  76. 何处惹尘埃"""
  77. print(strvar)
  78. str = '''本来"无"一'物',
  79. 何处惹尘埃'''
  80. print(strvar)
  81. # 源字符串 r (原型化输出字符串,让转义字符失效)
  82. strvar: str = r"爱\r杨奇超"
  83. strvar = r"C:\Program Files\AntiCheatExpert\SGuard"
  84. print(strvar)
  85. # 字符串的格式化 %d--整形占位符 %s--浮点型占位符 %f--字符型占位符
  86. strvar = "我是美女,有%2d豪车"%(3)
  87. print(strvar)
  88. strvar = "我是美女,有%.2f豪车"%(5.56# %.1f 存在四舍五入
  89. print(strvar)
  90. strvar = "%s"%("超超")
  91. print(strvar)
  92. # 容器类型数据 list tuple
  93. # 定义一个空列表
  94. listvar = []
  95. print(listvar, type(listvar))
  96. # 正向索引 0 1 2 3 4
  97. listvar = [13,2.14,True,6-2j,"我是帅哥"]
  98. # 反向索引 -5 -4 -3 -2 -1
  99. # 获取列表当中的值
  100. res = listvar [4]
  101. print(res)
  102. res = listvar [-1]
  103. print(res)
  104. # 通用 => 想要获取列表最后一个元素值 需要通过len函数
  105. # len 用来获取容器类型数据的元素个数(长度)
  106. res = len (listvar)-1
  107. print(res)
  108. print(listvar[res])
  109. print(listvar[len(listvar)-1])
  110. # 修改列表当中的值
  111. listvar [3] = "爱超超"
  112. listvar [-4] = "比养生"
  113. print(listvar)
  114. # tuple 可获取 不可修改 有序
  115. # 证明一个元组的根本特征是逗号,声明一个孔院组,可以直接使用(),(1)表明一个整型
  116. tuplevar = (1,2,3,4)
  117. print(tuplevar,type(tuplevar))
  118. tuplevar = (1,)
  119. print(tuplevar,type(tuplevar))
  120. tuplevar =1,2,3
  121. print(tuplevar,type(tuplevar))
  122. # 正向索引 0 1 2
  123. tuplevar = ("a","b",False)
  124. # 逆向索引 -3 -2 -1
  125. res = tuplevar[-1]
  126. print(res)
  127. # 元组不可修改 tuplevar [-1] = True
  128. # str 字符串和元组几乎一模一样, 只不过每一个元素都是字符
  129. # 可获取 不可修改 有序
  130. #          0 123  45 6 7 8
  131. strvar = " 瞅你一眼,浑身哆嗦"
  132. #          -9-8-7-6-5-4-3-2-1
  133. # (1) 获取字符串中的一字
  134. res = strvar [2]
  135. print(res)
  136. # (2) 字符串无法修改
  137. # strvar [-1] = "!"      error
  138. # 容器类型数据
  139. # set 集合 (用来做前交叉并补 集合操作的)
  140. # (1) 定义一个集合 无序 自动去重
  141. setvar = set() # 强制转换
  142. print(setvar,type(setvar))
  143. setvar = {"周杰伦","王宝强","李宇春"}
  144. print(setvar)
  145. setvar = {"刘德华","张学友","郭富城","王文","王宝强"}
  146. print(setvar)
  147. # dict 字典 由键值对数据组成,有序
  148. # 定义一个空字典
  149. dictvar = {}
  150. print(dictvar,type(dictvar))
  151. # "键": "值"
  152. dictvar = {"top""程咬金","middle""妖姬","bottom""崔丝塔娜","jungle""七大大声","support""德玛西亚"}
  153. print(dictvar,type(dictvar))
  154. # 获取字典当中的值 (通过键来获取)
  155. res = dictvar['middle']
  156. print(res)
  157. # 通过字典的键来修改值
  158. dictvar ['top'] = "赵信"
  159. print(dictvar)
  160. # 关于字典 在3.6版本之前 字典无序
  161. #          3.6版本之后 字典有序(看起来有序,本质无需)
  162. # 哈希算法: 哈希值 (算法底层)
  163. #         将不可变的长度值计算成具有固定长度的唯一值
  164. #         这个值可正可负 通过计算出来的键来获取值 形成一一映射的效果
  165. #         字典进行存储的时候,并不是按照字面顺序依次存在内存中
  166. #         而是通过哈希算法 随机散列的把键所对应的值存储在底层 所以字典无序 【为了求效率】
  167. #         可以通过哈希算出的键获取散列的值
  168. #         3.6之后,记录了字典的字面顺序,进行重新排序,所以看起来有序,实际上无序
  169. # 可哈希数据(不可变的数据): Number (int float complex bool) str tuple
  170. # 不可哈希数据(可变数据): list set dict (set 顺序可变的
  171. # 可哈希数据
  172. dictvar = {35136True,3.15:"111",False:"112233",3+2j:12,"大帅哥":78,(11,22,333):4}
  173. print(dictvar)
  174. # 字典的键 集合的值 都需要可哈希数据
  175. # 获取4
  176. print(dictvar[(11,22,333)])
  177. dictvar [False] = 67
  178. print(dictvar)
  179. # 可哈希数据 (集合)
  180. # setvar = {1,2,3,4,{5,6,7}}
  181. # print(setvar)
  182. # 同一文件的变量缓存机制
  183. # 变量的缓存机制是为了节省内存空间,提高效率
  184. # 1.对于整型而言,-5 ~ 正无穷 范围内的相同值 id一致
  185. intvar1 = 99
  186. intvar2 =99
  187. print(id(intvar1),id(intvar2))
  188. # 2.对于浮点数而言,非负数范围内的相同值 id一致
  189. a1 = 3.15
  190. a2 = 3.15
  191. print(id(a1),id(a2))
  192. # f1 = -3.14
  193. # f2 = -3.14
  194. # print(id(f1),id(f2))
  195. # 3.对于布尔值而言,值相同的情况下 id一致
  196. t1 = True
  197. t2 = True
  198. print(id(t1),id(t2))
  199. # 4.复数的id标识都不相同(在 实数 + 虚数 这样的结构中)
  200. c1 = 3-2j
  201. c2 = 3-2j
  202. print(id(c1),id(c2))
  203. # 只有虚数的情况下,在值相同时,地址相同
  204. c1 = 6j
  205. c2 = 6j
  206. print(id(c1),id(c2))
  207. # 自动类型转换 (针对于Number类型) bool float int complex
  208. # 当Number不同的数据类型进行运算的时候,默认向更高精度转化
  209. # 精度从高到低顺序:
  210. # bool --> int --> float --> complex
  211. # True 默认转化是1
  212. # Flase 默认转化是0
  213. # bool + int
  214. res = True + 89
  215. print(res)
  216. # bool + float
  217. res =True + 55.78
  218. print(res)
  219. # bool + complex
  220. res = False + 2-4j
  221. print(res)
  222. # int + float
  223. res = 31 + 4.1
  224. print(res)
  225. # int + complex
  226. res = 16 + 4-7j
  227. print(res)
  228. # float + complex
  229. res = 8.12 + 3+5j
  230. print(res)
  231. ### 强制类型转换 Number => (int float bool complex)
  232. var1 = 13
  233. var2 = 99.12
  234. var3 = True
  235. var4 = 3 + 1j
  236. var5 = "1234"
  237. var6 = "你好123"
  238. #  把数据强转为整型 int (整型 浮点型 布尔类型 纯数字字符串)
  239. res = int(var2) # 也可成intvar2
  240. print(res)
  241. res = int(var3)
  242. print(res)
  243. # 把数据强转为浮点型 float (整型 浮点型 布尔类型 纯数字字符串)
  244. res = float(var1)
  245. print(res)
  246. res = float(var3)
  247. print(res)
  248. res = float(var5)
  249. print(res)
  250. # 把数据强转为复数 complex (整型 浮点型 布尔类型 纯数字字符串 复数)
  251. print("-----------")
  252. res = complex(var1) # 13 + 0j
  253. res = complex(var2) # 99.12 + 0j
  254. res = complex(var3) # 0j
  255. res = complex(var4)
  256. print(res)
  257. res = complex(var5)
  258. print(res)
  259. # 把数据强转为布尔类型 bool (所有数据类型) 无论是Number还是容器类型数据都可以墙砖, 要么Flase要么True
  260. res = bool(var6)
  261. res = bool(var4)
  262. print(res)
  263. """
  264. 布尔类型为假的十种情况: 
  265. 0,0.0,Flase,0j,""字符空,[]列表空,()空元素,set()空集合,{}空字典,None
  266. None 是字典的一个关键字 表示空的 什么也没有 一般做初始
  267. 2:56
  268. """


评价

vs注释失效,提示xml注释没有放到有效得元素上,造成swagger生成注释也失效

vs注释失效,提示xml注释没有放到有效得元素上,造成swagger生成注释也失效。原因很简单.....方法上面还有一个默认的生成没...

ABP Xml为Swagger接口页添加详细注释

我们选中我们Application层的项目,右键“属性”,勾选为Xml生成文档,如下图所示。在你的 项目名.Web.Host 的startup目录...

mysql创建表,mysql 创表,注释,默认值。mysql添加列命令mysql添加字段。创表的常用字段。删除列

MySql常用 DDL命令 [TOC]创建表语句Create Table Users ( Id int, UserName varchar(64), Age int, Gender...

Swashbuckle Swagger添加注释

项目右键—>属性—>生成。勾上xml文档文件,它会生成基于xml的注释:勾上:XML文档文件(X)然后添加代码,去读取这个生...

mysql创表,mysql创表添加注释

简单的创表,配合一点约束 create table employee ( id int PRIMARY key auto_increment, name varchar(10) not ...

shell注释 03

一、shell注释1、单行注释以#开头例如#!/bin/bash#这是临时shell脚本echo 'nihao'2、多行注释以 :<<字符 开...

netcor6.0 swargger 生成带注释的api

目录 api带有中文注释和字段解释 program项目配置 api带有中文注释和字段解释programbuilder.Services.AddSwaggerGe...

(C)dotnet Core 在程序中获取 注释(summary)

前言有个比较怪的需求,就是把我现在所有能够访问的接口都展示出来比如我有一个 home 的控制器,我需要将此控制器的提供的...

mysql 使用命令添加列,包含类型,注释,默认值等

代码如下: ALTER TABLE training_subprogram ADD COLUMN IsMustDo TINYINT DEFAULT 0 COMMENT '是否必做(用于公开...

Quartz.NET实例动态改变周期调度。misfireCron

Quartz:Java编写的开源的任务调度作业框架 类似Timer之类定时执行的功能,但是更强大Quartz.NET:是把Quartz转成C# NuGet...

.NET Windows服务发布安装卸载监听脚本。服务调试

一、脚本 为方便不用每次都去写安装卸载的脚本1.安装脚本@echooff @echo开始安装【服务】 %SystemRoot%\Microsoft.NET\Fr...

C ??? 问号和2个问号的用法(类型?对象?)

C# ?C# ???:单问号1.定义数据类型可为空。可用于对int,double,bool等无法直接赋值为null的数据类型进行null的赋值如这...

C outref关键字的用法和区别

说说自己对out、ref的认识,面试问到的几率很高哟。out:classProgram { /* *out、ref都是引用传递,传递后使用都会改变...

cVB.net中全角半角转换方法

///<summary> ///转全角的函数(SBCcase) ///</summary> ///<paramname="input">任意字符串...
1
排名
34
文章
19
粉丝
1
评论
1
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术