Python学习第四天
一.数字 int
二.字符串 str
- #以下均为补充内容
- #对于空字符串是假
- #数字0是假
- #数字和字符串可以相互转换
- # a="123"
- # b=int(a)
- # a=123
- # b=str(a)
- #-1表示“x”,-2表示“e”
- # test="alex"
- # test[0:-2]
- #将range内容从后往前输出
- # for i in range(5,0,-1):
- # print(i)
- def check_code():
- import random
- checkcode = ''
- for i in range(4):
- current = random.randrange(0, 4)
- if current != i:
- temp = chr(random.randrange(65, 90))
- else:
- temp = random.randint(0, 9)
- checkcode += str(temp)
- return checkcode
- while True:
- code = check_code()
- print(code)
- user_in=input(">>>")
- user_in_up=user_in.upper()
- if user_in_up==code:
- break
- print("验证码正确")
三.列表 list
- # 中括号括起来
- # 逗号分割每个元素
- # 列表中的元素可以是数字,字符串,或者列表本身,布尔值等
- li = [1, 12, 9, "age", "diji", ["dskjd", "djsds"]]
- # 通过索引取值
- print(li[5])
- # 通过切片取值,切片结果也是列表
- print(li[3:5])
- # 支持for循环和while循环
- # 列表是拿链表储存的,锁所以可以修改。
- # 字符串是顺序存储的,所以修改的时候内存中的所有字符都要向后移获取向前移。所以修改的代价太大
- # 修改方式一,索引
- li[0] = "lzd"
- print(li)
- # 修改方式二,切片
- # 删除方式一,索引
- del li[0]
- print(li)
- # 删除方式二,切片
- # 支持in和not in的操作
- v = "dskjd" in li[4]
- print(v)
- # 取出来的是'dskjd'中的's'
- li = [1, 12, 9, "age", "diji", ["dskjd", "djsds"]]
- print(li[5][0][1])
- # 列表在进行转换的时候,本质上是for循环。所以数字不可以转换
- s = "dfsadkfuafehfafdhajdjda"
- new_s = list(s)
- print(new_s)
- # 列表转换成字符串
- # 需要自己写for循环一个一个处理,既有数字又有字符串
- # 用str转换会默认这个字符串是一个整体
- s = ""
- for i in li:
- s += str(i)
- print(s)
- # 如果只有字符串的情况,可以用join,join就是在内部在做for 循环
- li = ["jskd", "dsios", "ifsi", "fdif"]
- v = "".join(li)
- print(v)
- # append和extend的区别就是,append是将追加的值作为一个整体追加到列表的后边
- # expend可以进行迭代,将列表的值拆分成元素追加到列表的后面
- # expend的参数必须是可迭代的对象,比如说字符串获取列表
- li.extend([9898, "不得了"])
- print(li)
- # *************************************
- # 其他不常用的如下
- # none表示什么都没有,在原来值最后追加
- li = [11, 22, 33, 22, 44]
- v = li.append(5)
- print(v)
- print(li)
- # 表示清空列表中的值
- # li.clear()
- # print(li)
- # 拷贝,浅拷贝
- v = li.copy()
- print(v)
- # 计算元素出现的次数
- v = li.count(22)
- print(v)
- # 找某个值的索引位置,最左优先,可以规定起始位置和最后位置
- v = li.index(33)
- print(v)
- # 在指定索引位置插入元素
- li.insert(0, 99)
- print(li)
- # pop和remove都是删除
- # pop可以获取删除的值,默认删除最后一个元素,用索引指定
- # remove指定的是删除的值,没有默认情况,如果遇到相同的,按照从左到右的顺序进行删除
- v = li.pop(1)
- print(v)
- li.remove(33)
- print(li)
- # PS: pop remove del li[0] del li[7:9] clear
- # 将当前列表进行反转
- li.reverse()
- print(li)
- # 排序,可以进行从大到小排,也可以进行从小到大排序
- li.sort(reverse=True)
- print(li)
四.元组 tuple
- # 元组,元素不可被修改,不能被增加或者删除
- tu = (111, 22, 33, 44,)
- # 一般写元组的时候,在最后加个逗号,和参数区别
- # 索引
- v = tu[0]
- print(v)
- # 切片
- v = tu[0:2]
- print(v)
- # 不可以修改,增加或者删除
- # 可以被for循环,可迭代对象
- for item in tu:
- print(item)
- # 列表,元组,和字符串之间可以相互转换
- # 元组转换成字符串的时候,如果只有字符串可以用join
- # 如果既有字符串又有数字的话,也是智能自己写for循环,和列表差不多
- # 元组是有序的
- tu = (111, "alex", (11, 22), [(33, 44)], True, 33, 44)
- print(tu[3][0][0])
- # 元组的一级元素不可修改,删除,增加,但是二级元素如果是可修改的类型就可以修改
- # count,获取指定元素在元组中出现的次数
- # index,获取指定元素的索引位置
五.字典 dict
- # value可以是任意类型
- info = {
- "k1":"v1",#键值对
- "k2":"v2"
- }
- print(info)
- # 列表和字典都不可以作为'k'值,以哈希表的方式存储
- # 字典是无序的,可以通过自己规定的索引找到相应的值
- v = info["k1"]
- print(v)
- # 可以进行删除
- # del info["k1"]
- # print(info)
- # for循环,默认输出的是k。info.keys和默认情况向同
- for i in info:
- print(i)
- for i in info.values():
- print(i)
- # 即输出键又输出值
- for k,v in info.items():
- print(k,v)
- # 如果出现k值重复,只能保留一个。
- # 布尔值和0,1可能重复
- # clear
- # copy浅拷贝
- # 静态方法
- # 根据序列,创建字典,并指定统一的值
- v = dict.fromkeys(["k1",123,999],123)
- print(v)
- #info.get("k1")和按照索引取值的区别就是:
- #如果索引取值不存在会直接报错,而get则会返回none。如果不存在也可以通过参数指定返回值
- #删除,,也可以通过参数等到当前删除值得value
- #如果不存在,也可以指定一个默认的值返回给用户
- # v=info.pop("k1")
- # print(info,v)
- #popitem字典中随机删除键值对
- #进行设置,如果存在则不设置,不做任何变化。也可以获取值
- info.setdefault("k3",123)
- print(info)
- info.update({"k3":12345,"k4":123})
- info.update(k5=456)
- print(info)
- #*******************最常用 keys items values get update********************************
六.布尔值 bool
- # 0 1
- # bool(...)
- # 假:none,"",[],(),{},0
七.整理
- # 一.数字
- # int(...)
- #
- # 二.字符串
- # replace/find/join/strip/startswith/split/upper/lower/fomat
- s = "i am {name},age is {age}"
- v = s.format(**{"name":"lzd","age":19})
- print(v)
- # 三.列表
- # append/extend/insert
- # 四.元组
- # 一级元素不能被修改,删除,增加
- #
- # 五.字典
- # get/update/keys/items/values
- #
- # 六.布尔
- # 0 1
- # bool(...)
- # 假:none,"",[],(),{},0
Python学习第四天的更多相关文章
- python学习第四讲,python基础语法之判断语句,循环语句
目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...
- python学习第四次笔记
python学习第四次记录 列表list 列表可以存储不同数据类型,而且可以存储大量数据,python的限制是 536870912 个元素,64位python的限制是 1152921504606846 ...
- Python学习(四)数据结构(概要)
Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types int float Text Sequence ...
- python学习-第四天补充-面向对象
python学习-第四天补充-面向对象 python 私有 --name mangling(名字修改.名字) 在命名时,通过使用两个下划线作为开头,可以使得这个变量或者函数编程私有的,但是这个其实的p ...
- python学习第四十八天json模块与pickle模块差异
在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点 跨语言,体积小 缺点 只能支持 int st ...
- Python学习(四)cPickle的用法
python中有两个类似的:pickle与cPickle:两者的关系:“cPickle – A faster pickle” pickle模块中的两个主要函数是dump()和load().dump() ...
- Python学习笔记(四)Python函数的参数
Python的函数除了正常使用的必选参数外,还可以使用默认参数.可变参数和关键字参数. 默认参数 基本使用 默认参数就是可以给特定的参数设置一个默认值,调用函数时,有默认值得参数可以不进行赋值,如: ...
- Python学习(四十二)—— Djago-model进阶
一.QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. Entry.objects.all()[:5] # (LIMI ...
- Python学习笔记四
一.装饰器 1.知识储备 函数对象 函数可以被引用 函数可以当参数传递 返回值可以是函数 可以当作容器的元素 def func1(): print (666) def func2(): print ( ...
- python学习第四天笔记整理
一.迭代器及生成器 #迭代器:迭代的工具 #1 什么是迭代:指的是一个重复的过程,每一次重复称为一次迭代,并且每一次重复的结果是下一次重复的初始值# while True:# print('===== ...
随机推荐
- MapReduce实现PageRank算法(邻接矩阵法)
前言 之前写过稀疏图的实现方法,这次写用矩阵存储数据的算法实现,只要会矩阵相乘的话,实现这个就很简单了.如果有不懂的可以先看一下下面两篇随笔. MapReduce实现PageRank算法(稀疏图法) ...
- JavaScript形而上的For循环中的Break
break相当于循环中的GOTO,需避免使用. 下面是一个break使用例子. 找出第一个months小于7的项目. const cats = [ { name: 'Mojo', months: 84 ...
- selenium-xpath练习
- java - 策略模式、状态模式、卫语句,避免多重if-else(转)
前言 当代码中出现多重if-else语句或者switch语句时.弊端之一:如果这样的代码出现在多处,那么一旦出现需求变更,就需要把所有地方的if-else或者switch代码进行更改,要是遗漏了某一处 ...
- 基于百度通用翻译API的一个翻译小工具
前几天写了一个简单的翻译小工具,是基于有道翻译的,不过那个翻译接口有访问限制,超过一定次数后会提示访问过于频繁,偶然发现百度翻译API如果月翻译字符少于200万是不收取费用的,所以就注册了一个百度开发 ...
- 2 - Binary Search & LogN Algorithm - Apr 18
38. Search a 2D Matrix II https://www.lintcode.com/problem/search-a-2d-matrix-ii/description?_from=l ...
- hadoop多文件输出MultipleOutputFormat和MultipleOutputs
1.MultipleOutputFormat可以将相似的记录输出到相同的数据集.在写每条记录之前,MultipleOutputFormat将调用generateFileNameForKeyValue方 ...
- 记一次linux上的ftp搭建过程
最近公司测试环境需要搭建ftp,正好自己稍微有点空且这方面确实不会,就自告奋勇说让我先试试,玩炸了你们再帮忙重装系统重新搭吧(手动滑稽),虽然最终是完成了,但是中间磕磕碰碰遇到一些小问题,到处查百度, ...
- 浅谈UML中常用的几种图——类图
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- c#+Unity3D
Windows系统unity3d中的快捷键 自己整理常用; f2 改名 shift + 三维轴中间:45度 点击左键时 F:聚焦 V顶点贴合 ws拉近拉远 ad左右 qe 上下 长按右键 自由调换视角 ...