Python20-Day02
1、数据
数据为什么要分不同的类型
数据是用来表示状态的,不同的状态就应该用不同类型的数据表示;
数据类型
数字(整形,长整形,浮点型,复数),字符串,列表,元组,字典,集合
2、字符串
1、按索引取值,只能取
- input_info = 'Hello World'
- print(input_info[6])
2、切片(顾头不顾尾)
- input_info = 'Hello World'
- print(input_info[0:5])
3、长度len
- input_info = 'Hello World'
- print(len(input_info))
4、成员运算in和not in
- input_info = 'Hello World'
- # if 'Hello' in input_info:
- # print('OK')
- if 'wang' not in input_info:
- print('wang is not in input_info!' )
5、移除空白strip (移除开头和结尾的空格)
- input_info = ' Hello World'
- input_info2 = ' Hello World '
- print(input_info)
- print(input_info.strip())
- print(input_info2.strip())
6、切分split
- input_info = 'egon,alex,wupeiqi,oldboy' #默认按照空格进行切分
- # print(input_info.split()) #切分完成后得到一个列表
- print(input_info.split(',')) #指定分隔符进行切分
7、循环
- input_info = 'hello world'
- for item in input_info:
- print(item)
#字符串需要掌握的方法
1、lower,upper
- input_info = 'Hello World'
- print(input_info.upper())
- print(input_info.lower())
2、startswith和endswith
- input_info = 'hello world'
- print(input_info.startswith('hello')) #返回布尔值
- print(input_info.endswith('world')) #返回布尔值
3、format
- res='{} {} {}'.format('egon',18,'male')
- res='{1} {0} {1}'.format('egon',18,'male')
- res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
4、join
- tag=' '
- print(tag.join(['egon','say','hello','world'])) #可迭代对象必须都是字符串
5、replace
- name='hello,every one,are you ok,are you good'
- print(name.replace('hello','Hello'))
- print(name.replace('you','then',1))
6、isdigit
- res_input = input('Input>>: ')
- print(res_input.isdigit())
#字符串类型总结:
- 1、只能存一个值,
- 2、有序
- 3、不可变:值变,id就变。不可变==可hash
3、列表
定义:[]内可以有多个任意类型的值,逗号分隔
- #按索引存取值(正向存取+反向存取):即可存也可以取
my_girl_friends=['alex','wupeiqi','yuanhao',4,5]- print(my_girl_friends[0])
- my_girl_friends.insert(1,'zhaoliying')
- print(my_girl_friends)
- #切片(顾头不顾尾,步长)
- my_girl_friends=['alex','wupeiqi','yuanhao',4,5,'zhaoliying','wangxiaomi']
- print(my_girl_friends[1:6:2])
- #长度
- my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
- print(len(my_girl_friends))
- #成员运算in和not in
- my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
- if 'alex' in my_girl_friends:
- print('This is ok')
- if 'zhaoliying' not in my_girl_friends:
- print('ni xiang sha ne')
- #追加
- my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
- my_girl_friends.append('zhaoliying') #append,在列表的尾部添加
- print(my_girl_friends)
- my_girl_friends.insert(1,'zhaoliying') #insert,可以指定列表的下标添加元素
- print(my_girl_friends)
- #删除
- my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
- print(my_girl_friends.pop()) #pop,删除列表中的元素,从尾部开始删除,并且会返回删除的值
- print(my_girl_friends.pop())
- print(my_girl_friends.pop())
- #循环
- my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
- for item in my_girl_friends:
- print(item)
- #步长
- l=[1,2,3,4,5,6]
- print(l[0:3:1]) #正向步长
- print(l[2::-1]) #反向步长
- print(l[::-1]) #列表翻转
#列表类型总结
1、可以存多个值,值都可以是字符串,列表,字典,元组
2、有序
2、可变:值变,id不变。可变==不可hash
4、元组
- #按索引取值(正向取+反向取):只能取
- age=(11,22,33,44,55)
- print(age[1])
- #2、切片(顾头不顾尾,步长)
- age=(11,22,33,44,55)
- print(age[1:3])
- #3、长度
- age=(11,22,33,44,55)
- print(len(age))
- #4、成员运算in和not in
- age=(11,22,33,44,55)
- if 11 in age:
- print('This is ok!')
- if 88 not in age:
- print('This is error')
- #5、循环
- age=(11,22,33,44,55)
- for item in age:
- print('your age is %s' %item)
5、字典
作用:存多个值,key-value存取,取值速度快
定义:key必须是不可变类型,值可以是任意类型
info={'name':'egon','age':18,'sex':'male'}
- #1、按key存取值:可存可取
- info={'name':'egon','age':18,'sex':'male'}
- print(info['name'])
- #2、长度len
- info={'name':'egon','age':18,'sex':'male'}
- print(len(info))
- #3、成员运算in和not in
- info={'name':'egon','age':18,'sex':'male'}
- if 'name' in info:
- print(info['name'])
- #4、删除
- info={'name':'egon','age':18,'sex':'male'}
- print(info.pop('age'))
- print(info)
- #5、键keys(),值values(),键值对items()
- info={'name':'egon','age':18,'sex':'male'}
- for item in info:
- print(item,info[item])
6、集合
作用:去重,关系运算
定义集合:
集合可以包含多个元素,用逗号分隔
集合的元素遵循三个原则:
1. 每个元素必须是不可变类型
2. 没有重复的元素
3. 无序
注意:集合的目的是将不同的值存放到一起,不同的集合用来做关系运算
- #1、长度len
- # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
- # print(len(pythons))
- pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
- linuxs={'wupeiqi','oldboy','gangdan'}
- #3、|合集
- # print(pythons|linuxs)
- #4、&交集
- # print(pythons & linuxs)
- #5、-差集
- # print(pythons - linuxs)
- #6、^对称差集
- # print(pythons ^ linuxs)
7、 文件编码
字符编码的发展3个阶段:
1、 现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII
2、为了满足中文和日文,中国定制了GBK
3、每一个国家都有自己的标准,就不可避免的会有冲突,在多语言混合的文本中,显示出来就会乱码,如何解决:
1. 能够兼容万国字符
2. 与全世界所有的字符编码都有映射关系,这样就可以转换成任意国家的的字符编码。
总结:内存中统一采用Unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,如utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。
总结:保证不乱码的的核心法则:
字符按照什么标准而编码的,就按照什么标准解码。
在内存中写的所有字符,都是Unicode编码。
8、 文件操作
1、文件操作流程
打开文件,得到文件句柄并赋值给一个变量
通过句柄对文件进行操作
关闭文件
打开文件的模式有:
r,只读模式(默认)。
w,只写模式。【不可读;不存在则创建;存在则删除内容;】
a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
"+" 表示可以同时读写某个文件
r+,可读写文件。【可读;可写;可追加】
w+,写读
a+,同a
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
rU
r+U
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
rb
wb
ab
- f = open('文件操作.file','r',encoding='utf-8')
- # print(f.read())
- print(f.readline(3).strip())
- #readline每次读一行,可以设置limit(字符)
2、with语句
为了避免打开文件后忘记关闭,可以用with:
- with open('文件操作.file','r',encoding='utf-8') as f:
- pass
python2.7后,with支持对多个文件的上下文进行管理
- with open('log1') as obj1, open('log2') as obj2:
- pass
Python20-Day02的更多相关文章
- 学习day02
day021.结构标记 ***** 做布局 1.<header>元素 <header></header> ==> <div id="heade ...
- 《Professional JavaScript for Web Developers》day02
<Professional JavaScript for Web Developers>day02 1.在HTML中使用JavaScript 1.1 <script>元素 HT ...
- 《javascript经典入门》-day02
<javascript经典入门>-day02 1.使用函数 1.1基本语法 function sayHello() { aler('Hello'); //...其他语句... } #关于函 ...
- tedu训练营day02
1.Linux命令 1.关机.重启 关机 :init 0 重启 :init 6 2.rm 1.rm -rf 文件/目录 r :递归删除文件夹内的子文件夹 f :强制删除,force 2.练习 1.在用 ...
- Python基础-day02
写在前面 上课第二天,打卡: 大人不华,君子务实. 一.进制相关 - 进制基础 数据存储在磁盘上或者内存中,都是以0.1形式存在的:即是以 二进制 的形式存在: 为了存储和展示,人们陆续扩展了数据的表 ...
- c#day02
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace testmys ...
- day02 基本数据类型与运算符
day02 1.基本数据类型 2.算术运算符 +,-,*,/,%,++,-- 3.赋值运算符 =,+=,-=,*=,/=,%= 4.关系运算符 +=,-=,*=,/=,%= 结果是boolean类型 ...
- python开发学习-day02(元组、字符串、列表、字典深入)
s12-20160109-day02 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- 2017-2018-1 JAVA实验站 冲刺 day02
2017-2018-1 JAVA实验站 冲刺 day02 各个成员今日完成的任务 小组成员 今日工作 完成进度 张韵琪 写博客.进行工作总结 100% 齐力锋 找背景音乐.开始界面图片.按钮图片.按钮 ...
- C++Primer笔记-----day02
====================================================================day02=========================== ...
随机推荐
- python - 流程控制基础习题
#打印1 到100 的和** i = 0 s = 0 while i <100: i += 1 s += i print(s) print('1+2+,,100=',s) #打印字符A~Z fo ...
- ABAP术语-ABAP 术语发布结束
ABAP 术语发布结束 原文:http://www.cnblogs.com/qiangsheng/archive/2008/03/21/1116236.html 经历了大约三个月,终于把 BC417 ...
- 偏前端-vue.js学习之路初级(二)组件化构建
vue.js 组件化构建 组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许我们使用小型.自包含和通常可复用的组件构建大型应用.仔细想想,几乎任意类型的应用界面都可以抽象为一个组件树: ...
- 三、spring成长之路——springIOC容器详解(上)
目录 一.springIOC 一.springIOC 控制反转和依赖注入: 简单的说就是将对象的创建,属性的的设置交给spring容器进行管理,而不再由用户自己创建,当用户需要使用该接口或者类的时 ...
- react 使用antd 按需加载
使用 react-app-rewired 1. 安装react-app-rewired: 由于新的 react-app-rewired@2.x 版本的关系,你还需要安装 customize-cra. ...
- MongoDB 数据类型查询 — $type使用
MongoDB 使用过程中经常需要根据字段的类型来查询数据, 而MongoDB中查询字段类型是通过$type操作符来实现. $type使用法语: db.集合名.find({$type:类型值}); / ...
- day 35初识数据库
一.数据库概述 1.什么是数据库?先来看看百度怎么说的. 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增.截取.更新.删除等操作. 所谓“数据库”系 ...
- STM32F4 SPI双机通讯调试总结
1.如果查询方式进行数据收发,不管是Master,还是Slave,流程如下:(假设收发n+1个字节) a.等待TXE,写入一个字节 b.等待TXE,写入一个字节 c.等待RXNE,读取一个字节 循环b ...
- 接口测试jemeter使用
使用jemeter5时要先添加环境变量,需要有JDK1.8及以上版本支持.这里主要对接口测试做一些说明. 以上就是常见的设置问题.在window上我们通常是不需要改动配置文件的,如果要在生产上执行测试 ...
- c#开发微信公众号——关于c#对象与xml的转换
在成为微信公众号开发者以后,整个交互流程:用户->微信服务器->自己的服务器->返回微信服务器->用户: 举个例子:用户在微信公众号里面发了个“您好!”,微信服务器会以特定的x ...