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. Oracle ddl 和 dml 操作

      ddl 操作 窗口设置用户权限的方法  Oracle的数据类型  按住Ctrl点击表名 ,可以鼠标操作  插入的数据需要满足创建表的检查  主表clazz删除数据从表设置级联也会一同删除 有约束也 ...

  2. dispatch 之 常见函数小结

    你好2019!一起努力呀! 直奔主题 1.dispatch_barrier_async VS  dispatch_barrier_sync Barrier blocks only behave spe ...

  3. jquery选择器基础

    简单选择器 类 id 元素/标签 * 复合(sel1,sel2)逗号隔开 层次选择器 s1 s2:后代选择器,空格隔开 p>c:子代选择器:不包括孙代及以下 p+next :相邻选择器 p~su ...

  4. Delphi Compiler Bug?

    I found a Bug of Delphi XE3 Compiler,It may exists in XE4,XE5. Here is the code to show the bug proc ...

  5. 树莓派GPIO控制LED彩灯

    树莓派使用GPIO接口来控制LED灯,自制五彩炫光的节日彩灯. 1.硬件准备 a. 树莓派(Raspberry Pi)一个 b. 彩色RGB二极管 c. 杜邦线 d. 5V电源引脚 以上所有零件均可在 ...

  6. 20155307 2016-2017-2《Java程序设计》课程总结

    预备作业1 预备作业1 预备作业1 第1周作业 第2周作业 第3周作业 第4周作业 第5周作业 第6周作业 第7周作业 第8周作业 第9周作业 第10周作业 自认为写得最好一篇博客是?为什么? 是这篇 ...

  7. 20155316 2016-2017-2 《Java程序设计》第3周学习总结

    教材学习内容总结 类:创建类.使用类 基本类类型与类类型 数组 封装的概念 重载 类语法 static成员 教材学习中的问题和解决过程 1.既然数组在JAVA中就是对象,那么int[] 是否是一个类呢 ...

  8. 12、Java并发编程:阻塞队列

    Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable.Vector),也讨论了并发容器(ConcurrentHashMap.CopyOnWriteArrayList), ...

  9. Linux安装gitlab

    一.GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.安装方法是参考GitLab在GitHub上的Wiki页面. 二.我相信使用过git的开 ...

  10. 洛谷2612&&bzoj2817 [ZJOI2012]波浪

    洛谷2612&&bzoj2817 [ZJOI2012]波浪 原题链接 题解 因为有abs不太好搞,考虑拆掉abs. 生成排列的方法之一:n个空位,从1到n一次插入一个空位. 这样搞的话 ...