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的更多相关文章

  1. 学习day02

    day021.结构标记 ***** 做布局 1.<header>元素 <header></header> ==> <div id="heade ...

  2. 《Professional JavaScript for Web Developers》day02

    <Professional JavaScript for Web Developers>day02 1.在HTML中使用JavaScript 1.1 <script>元素 HT ...

  3. 《javascript经典入门》-day02

    <javascript经典入门>-day02 1.使用函数 1.1基本语法 function sayHello() { aler('Hello'); //...其他语句... } #关于函 ...

  4. tedu训练营day02

    1.Linux命令 1.关机.重启 关机 :init 0 重启 :init 6 2.rm 1.rm -rf 文件/目录 r :递归删除文件夹内的子文件夹 f :强制删除,force 2.练习 1.在用 ...

  5. Python基础-day02

    写在前面 上课第二天,打卡: 大人不华,君子务实. 一.进制相关 - 进制基础 数据存储在磁盘上或者内存中,都是以0.1形式存在的:即是以 二进制 的形式存在: 为了存储和展示,人们陆续扩展了数据的表 ...

  6. c#day02

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace testmys ...

  7. day02 基本数据类型与运算符

    day02 1.基本数据类型 2.算术运算符 +,-,*,/,%,++,-- 3.赋值运算符 =,+=,-=,*=,/=,%= 4.关系运算符 +=,-=,*=,/=,%=  结果是boolean类型 ...

  8. python开发学习-day02(元组、字符串、列表、字典深入)

    s12-20160109-day02 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  9. 2017-2018-1 JAVA实验站 冲刺 day02

    2017-2018-1 JAVA实验站 冲刺 day02 各个成员今日完成的任务 小组成员 今日工作 完成进度 张韵琪 写博客.进行工作总结 100% 齐力锋 找背景音乐.开始界面图片.按钮图片.按钮 ...

  10. C++Primer笔记-----day02

    ====================================================================day02=========================== ...

随机推荐

  1. Vue 自动获取最新的Vue文件

    <script src="https://unpkg.com/vue/dist/vue.min.js"></script>

  2. activemq的高级特性:通配符式分层订阅

    activemq的高级特性之通配符式分层订阅 队列的名称可以分层:aa.bb.cc.dd 可以匹配:aa.bb.cc.dd,aa.*.cc.dd,aa.> *:匹配当前层的内容 >:任何一 ...

  3. python散记

    1.AOP 将不同的类的内部中雷同的代码和重复的功能,提取出来以重用. 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等 2.新式类,经典类 新式类 ...

  4. 【vue】------浅谈vue------【William】

    ### Vue > Vue是一个前端js框架,由尤雨溪开发,是个人项目 Vue近几年来特别的受关注,三年前的时候angularJS霸占前端JS框架市场很长时间,接着react框架横空出世,因为它 ...

  5. MySQL慢日志查询实践

    慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句.例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志 ...

  6. thinkphp+redis实现秒杀,缓存等功能

    秒杀是商城常见功能  php+redis是最常见的秒杀功能 1,安装redis,根据自己的php版本安装对应的redis扩展 首先查看phpinfo();php环境信息 2,下载redis https ...

  7. php实现银联支付

    银联支付用的还是比较少的,而且开发中也没接触多少,不过因为工作项目用银联支付能降低费率,所以还是接入了银联支付.本文支付为银联网关和WAP支付接口. 官方网站SDK&DEMO:https:// ...

  8. VB错误说明

    1001 800A03E9 内存不足 1002 800A03EA 语法错误 1003 800A03EB 缺少“:” 1005 800A03ED 需要 '(' 1006 800A03EE 需要 ')' ...

  9. Kafka监控与调优

    Kafka监控 五个维度来监控Kafka 监控Kafka集群所在的主机 监控Kafka broker JVM的表现 监控Kafka Broker的性能 监控Kafka客户端的性能.这里的所指的是广义的 ...

  10. 运行TensorFlow报错,“This program requires version 3.6.1 of the Protocol Buffer runtime library, but the installed version is 3.0.0.”

    报错信息: [libprotobuf FATAL google/protobuf/src/google/protobuf/stubs/common.cc:67] This program requir ...