首页 > Python20-Day02

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 或 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

 

转载于:https://www.cnblogs.com/mrwang1101/p/8023521.html

更多相关:

  • #coding:utf-8'''Created on 2017年10月25日@author: li.liu'''import pymysqldb=pymysql.connect('localhost','root','root','test',charset='utf8')m=db.cursor()'''try:#a=raw_inpu...

  • python数据类型:int、string、float、boolean 可变变量:list 不可变变量:string、元组tuple 1.list list就是列表、array、数组 列表根据下标(0123)取值,下标也叫索引、角标、编号 new_stus =['刘德华','刘嘉玲','孙俪','范冰冰'] 最前面一个元素下标是0,最...

  • from pathlib import Path srcPath = Path(‘../src/‘) [x for x in srcPath.iterdir() if srcPath.is_dir()] 列出指定目录及子目录下的所有文件 from pathlib import Path srcPath = Path(‘../tenso...

  • 我在使用OpenResty编写lua代码时,需要使用到lua的正则表达式,其中pattern是这样的, --热水器设置时间 local s = '12:33' local pattern = "(20|21|22|23|[01][0-9]):([0-5][0-9])" local matched = string.match(s, "...

  • 在分析ats的访问日志时,我经常会遇到将一些特殊字段对齐显示的需求,网上调研了一下,发现使用column -t就可以轻松搞定,比如 找到ATS的access.log中的200响应时间过长的日志 cat access.log | grep ' 200 ' | awk -F '"' '{print $3}' > taoyx.log co...

  • 故事背景:有一天,强哥整了个动态渲染的列表代码如下 app.component.html

          //为什么不直接就用input,那是因为这样会覆盖checkbox和radio的样式,我们这里只需要清除输入框的谷歌样式 input[type="text"], input[type="password"], input[type="number"], input[type="tel"]{box-shadow:...