• 标准数据类型

      

      Python3 中有六个标准的数据类型:

          Number(数字)

          String(字符串)

          List(列表)

          Tuple(元组)

          Sets(集合)

          Dictionary(字典)

  • 数字

    

#整型
在Python 3里,只有一种整数类型 int,表示为长整型;
内置的 type() 函数可以用来查询变量所指的对象类型。 作用:年纪,等级,身份证号,qq号等整型数字相关 >>> num=1
>>> print(num,type(num))
1 <class 'int'> #浮点型
浮点型(Float) 作用:薪资,身高,体重,体质参数等浮点数相关
salary=3000.3 #本质salary=float(3000.3)

  

  • 字符串

#作用:名字,性别,国籍,地址等描述信息

#定义:在单引号\双引号\三引号内,由一串字符组成
name='yinxin' #优先掌握的操作:
#1、按索引取值(正向取+反向取) :只能取
  正向取值

    >>> name="yinxin"

    >>> name[0]

     'y'

  反向取值
   >>> name[-2]
   'i
#2、切片(顾头不顾尾,步长)

    >>> name="yinxin"

     >>> name[:3]

'yin'

#3、长度len

    >>> name="yinxin"

    >>> len(name)

    

#4、成员运算in和not in

    >>> "y" in name

    True

    >>> "y" not in name

    False

#5、移除空白strip

   >>> name 'yinxin  '

    >>> name.strip()

    'yinxin'

#6、切分split

    >>> name_list="yinxin1,yixnin2,yixnin3"

    >>> name_list.split(",")

    ['yinxin1', 'yixnin2', 'yixnin3']

#7、循环

    >>> name="yinxin"

    >>> for i in name:

    ...   print(i)

    ...

    y

    i

    n

    x

    i

    n

    字符串练习

# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
name = " aleX"
# 1) 移除 name 变量对应的值两边的空格,并输出处理结果
# 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果

# 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果

# 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
# 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
# 6) 将 name 变量对应的值变大写,并输出结果

# 7) 将 name 变量对应的值变小写,并输出结果

# 8) 请输出 name 变量对应的值的第 2 个字符?
# 9) 请输出 name 变量对应的值的前 3 个字符?
# 10) 请输出 name 变量对应的值的后 2 个字符?

# 11) 请输出 name 变量对应的值中 “e” 所在索引位置?

# 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
# 写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)
name = " aleX"
# 1) 移除 name 变量对应的值两边的空格,并输出处理结果
name = ' aleX'
a=name.strip()
print(a) # 2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果

name=' aleX'
if name.startswith(name):
print(name)
else:
print('no') # 3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果

name=' aleX'
if name.endswith(name):
print(name)
else:
print('no') # 4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
name=' aleX'
print(name.replace('l','p')) # 5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
name=' aleX'
print(name.split('l')) # 6) 将 name 变量对应的值变大写,并输出结果

name=' aleX'
print(name.upper()) # 7) 将 name 变量对应的值变小写,并输出结果

name=' aleX'
print(name.lower()) # 8) 请输出 name 变量对应的值的第 2 个字符?
name=' aleX'
print(name[1]) # 9) 请输出 name 变量对应的值的前 3 个字符?
name=' aleX'
print(name[:3]) # 10) 请输出 name 变量对应的值的后 2 个字符?

name=' aleX'
print(name[-2:]) # 11) 请输出 name 变量对应的值中 “e” 所在索引位置?

name=' aleX'
print(name.index('e')) # 12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
name=' aleX'
a=name[:-1]
print(a)
  • 列表

#作用:多个装备,多个爱好,多门课程,多个女朋友等

#定义:[]内可以有多个任意类型的值,逗号分隔
my_girl_friends=['yinxin','yinxin1','yinxin2',4,5] #本质my_girl_friends=list([...])

l=list('abc') #优先掌握的操作:
#1、按索引存取值(正向存取+反向存取):即可存也可以取   正向取值
  >>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]
  >>> my_girl_friends[0]
  'yinxin'
  反向取值
  >>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]
  >>> my_girl_friends[-1]
  5
   
#2、切片(顾头不顾尾,步长)
  >>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]
  >>> my_girl_friends[0:2]
['yinxin', 'yinxin1']
#3、长度
  >>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]
  >>> len(my_girl_friends)
   5
#4、成员运算in和not in

  >>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]

  >>> "yinxin" in my_girl_friends

    True

  >>> "yinxin" not in my_girl_friends

    False


#5、追加
>>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]
>>> my_girl_friends.append("yinxin4")
>>> my_girl_friends
['yinxin', 'yinxin1', 'yinxin2', 4, 5, 'yinxin4'] 

#6、删除
>>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5] 
>>> del my_girl_friends[0]
>>> my_girl_friends
['yinxin1', 'yinxin2', 4, 5, 'yinxin4']

#7、循环

 >>> my_girl_friends=['yinxin1','yinxin2',4,5]

>>> for name in my_girl_friends:

...     print(name)

...

  yinxin1

  yinxin2

  4

  5

#ps:反向步长

 正向步长

>>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]

>>> my_girl_friends[0:3:1]

['yinxin', 'yinxin1', 'yinxin2']

  反向步长

>>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]

>>> my_girl_friends[2::-1]

['yinxin2', 'yinxin1', 'yinxin']

  

#列表翻转

>>> my_girl_friends=['yinxin','yinxin1','yinxin2',4,5]

 >>> my_girl_friends[::-1]

[5, 4, 'yinxin2', 'yinxin1', 'yinxin']

插入   指定位置插入元素

name_list
['123', 'lilei', 'hanmeimei', 'test']
name_list.insert(1,"1232")
name_list
['123', '1232', 'lilei', 'hanmeimei', 'test']

  • 元组

#作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读

#定义:与列表类型比,只不过[]换成()
age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55)) #优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取
#2、切片(顾头不顾尾,步长)
#3、长度
#4、成员运算in和not in #5、循环

 >>> age=(11,22,33,44,55)

 >>> age[0]   #按照索引正向取值

11

>>> age[-1]   #按照索引反向取值

55

>>> age[0:2] #切片

(11, 22)

>>> len(age) #长度

5

>>> 11 in age #in

True

>>> 11 not in age #not in

False

>>> for num in age:    #循环

...    print(num)

...

11

22

33

44

55

  • 字典

#作用:存多个值,key-value存取,取值速度快

#定义:key必须是不可变类型,value可以是任意类型
info={'name':'egon','age':18,'sex':'male'} #本质info=dict({....})

info=dict(name='egon',age=18,sex='male')

info=dict([['name','egon'],('age',18)])

{}.fromkeys(('name','age','sex'),None) #优先掌握的操作:
#1、按key存取值:可存可取
>>> info={'name':'yinxin','age':18,'sex':'male'}
>>> info['name']
'yinxin'
#2、长度len
>>> info={'name':'yinxin','age':18,'sex':'male'}
>>> len(info)
3
#3、成员运算in和not in
>>> info={'name':'yinxin','age':18,'sex':'male'}
>>> "name" in info
True
>>> "name" not in info
False
#4、删除
1>
>>> info={'name':'yinxin','age':18,'sex':'male'}
>>> res=info.pop("name")
>>> print(res)
yinxin
2>
>>> info={'name':'yinxin','age':18,'sex':'male'}
>>> del info["name"]
>>> info
{'sex': 'male', 'age': 18}
#5、键keys(),值values(),键值对items()
>>> info.keys()
dict_keys(['sex', 'age'])
>>> info.values()
dict_values(['male', 18])
>>> info.items()
dict_items([('sex', 'male'), ('age', 18)])
#6、循环
>>> info={'name':'yinxin','age':18,'sex':'male'}
>>> for k in info:
... print(k,info[k])
...
name yinxin
sex male
age 18
>>> info={'name':'yinxin','age':18,'sex':'male'}
>>> for k,v in info.items():
... print(k,v)
...
name yinxin
sex male
age 18
 

练习

1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中

即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
a={'k1':[],'k2':[]}
c=[11,22,33,44,55,66,77,88,99,90]
for i in c:
if i>66:
a['k1'].append(i)
else:
a['k2'].append(i)
print(a)
2 统计s='hello a a say hello 1 1'中每个单词的个数

结果如:{'say': 1, 'hello': 2, 'a': 2, '': 2}
s='hello a a say hello 1 1'
l=s.split()
dict={}
for i in l:
if i in dict:
dict[i]+=1
else:
dict[i]=1
print(dict)
{'say': 1, 'hello': 2, 'a': 2, '': 2}
dic={}
words=s.split()
print(words)
for word in words: #word='alex'
dic[word]=s.count(word)
print(dic) #利用setdefault解决重复赋值
'''
setdefault的功能
1:key存在,则不赋值,key不存在则设置默认值
2:key存在,返回的是key对应的已有的值,key不存在,返回的则是要设置的默认值
d={}
print(d.setdefault('a',1)) #返回1 d={'a':2222}
print(d.setdefault('a',1)) #返回2222
'''
s='hello alex alex say hello sb sb'
dic={}
words=s.split()
for word in words: #word='alex'
dic.setdefault(word,s.count(word))
print(dic)
#利用集合,去掉重复,减少循环次数
s='hello alex alex say hello sb sb'
dic={}
words=s.split()
words_set=set(words)
for word in words_set:
dic[word]=s.count(word)
print(dic)
  • 集合

#作用:去重,关系运算,

#定义:
知识点回顾
可变类型是不可hash类型
不可变类型是可hash类型 #定义集合:
集合:可以包含多个元素,用逗号分割,
集合的元素遵循三个原则:
1:每个元素必须是不可变类型(可hash,可作为字典的key)
2:没有重复的元素
3:无序 注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值 #优先掌握的操作:
#1、长度len
#2、成员运算in和not in #3、|合集
#4、&交集
#5、-差集
#6、^对称差集
#7、==
#8、父集:>,>=
#9、子集:<,<= pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} linuxs={'wupeiqi','oldboy','gangdan'} print(pythons & linuxs
{'wupeiqi', 'gangdan'}
print(pythons | linuxs)
{'wupeiqi', 'egon', 'biubiu', 'oldboy', 'alex', 'yuanhao', 'gangdan'}
print(pythons -linuxs)
{'alex', 'egon', 'yuanhao', 'biubiu'}

  print(pythons ^ linuxs)

 {'egon', 'yuanhao', 'biubiu', 'alex', 'oldboy'}

   字符编码

http://www.cnblogs.com/linhaifeng/articles/5950339.html

  • 文件处理

http://www.cnblogs.com/linhaifeng/articles/5984922.html


python学习第二节 数据类型、字符编码、文件处理的更多相关文章

  1. python第二周数据类型 字符编码 文件处理

    第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ...

  2. python学习第四天 --字符编码 与格式化及其字符串切片

    字符编码 与格式化 第三天已经知道了字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采 ...

  3. python学习之路_字符编码

    字符编码及python中的转码问题,这篇博客讲的比较清楚,python 之路,致那些年,我们依然没搞明白的编码

  4. python学习第十八天计算机字符编码

    人类语言和计算机语言二进制怎么沟通,最开始字符编码为ascii码对照表 包括数据和字母,没有汉字,中国自己搞了一套自己的编码 gb2312编码后来发展GBK编码,日本,韩国都,甚至台湾也搞自己的编码, ...

  5. Python学习第二节——基础知识

    # !/usr/bin/edv python    脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它.# -*- coding:UTF-8 -*-    标明编码注释 ...

  6. Ant学习---第二节:Ant添加文件夹和文件夹集的使用

    一.创建 java 项目(Eclipse 中),结构图如下: 1.创建 .java 文件,代码如下: package com.learn.ant; public class HelloWorld { ...

  7. Python编程笔记二进制、字符编码、数据类型

    Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...

  8. 【转】Python中的字符串与字符编码

    [转]Python中的字符串与字符编码 本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常 ...

  9. Python : 熟悉又陌生的字符编码(转自Python 开发者)

    Python : 熟悉又陌生的字符编码 字符编码是计算机编程中不可回避的问题,不管你用 Python2 还是 Python3,亦或是 C++, Java 等,我都觉得非常有必要厘清计算机中的字符编码概 ...

随机推荐

  1. 使用R进行空间自相关检验

    「全局溢出」当一个区域的特征变化影响到所有区域的结果时,就会产生全局溢出效应.这甚至适用于区域本身,因为影响可以传递到邻居并返回到自己的区域(反馈).具体来说,全球溢出效应影响到邻居.邻居到邻居.邻居 ...

  2. Xml反序列化记录

    1.概述 公司项目遇到一个需要对接webservice的,webservice大部分用的都是xml来传输的,这里记录一下xml反序列化遇到的问题 2.xml工具类 xml序列化: public sta ...

  3. swoole 异步非堵塞 server/端 client/端 代码,已经测试完毕。贴代码

    服务器环境  centos7.0  swoole4.3 php7.2 pcre4.8  nginx1.8   php-fpm server.php <?php class Server { pr ...

  4. Java Grammar(三):修饰符

    简介 修饰符是用于限定类型以及类型成员申明的一种符号,从修饰对象上可以分为类修饰符,方法修饰符,变量修饰符:从功能上可以划分为访问控制修饰符和非访问修饰符.访问修饰符控制访问权限,不同的访问修饰符有不 ...

  5. VWware Workstation 安装CentOS系统

    VWware Workstation 安装CentOS系统 下载CentOS系统镜像: 官方地址:https://www.centos.org/download/mirrors/ 在此可选择华为云服务 ...

  6. js 数组 方法

    instanceof 检测一个对象是否是数组;(用来对付复杂数据类型;)// 简单数据类型 typeof ;A instanceof B // A是不是B造出来的;例: var arr = [1,2, ...

  7. 微信小程序开发(一)开发准备

    微信小程序开发(一)开发准备 微信小程序,近几年,越来越火,应用场景越来越多,好大学习起来,比较容易,学习曲线平缓,你要是会前端开发,那简直可以用易如反掌来形容. 小程序,开发工具官方也提供了,他兼容 ...

  8. nuxt创建项目的步骤

    nuxt创建项目的步骤 1.基本步骤 // 创建package.json依赖管理文件 npm init -y // 在package.json文件中添加运行nuxt的命令,之后npm run dev启 ...

  9. 解决Requires: libc.so.6(GLIBC_2.14)(64bit)错误解决方法

    glibc简介: glibc是GNU发布的libc库,即c运行库.glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统服 ...

  10. tarjan算法强连通分量的正确性解释+错误更新方法的解释!!!+hdu1269

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269 以下内容为原创,转载请声明. 强连通分量SCC(Strongly Connected Compo ...