本章内容:

     一.编码格式

     二.常用数据类型

     三.字符串常用方法

     四.列表常用方法

   五.数据运算

     六.课后作业

编码格式:

      ASCII

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。由于ascii码能表示符合的数量太少,无法表示完全部中午。为了处理汉字,程序员在ASCII上设置了中文的扩展表。发展如下:

GB2312(1980年):一共收录了7445个字符,包括6763个汉字和682个其它符号。

GBK1.0(1995年):收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。(windows 简体中文默认使用GBK编码表)

GB18030(2000年):正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。

     使用ASCII码表,英文占用一个字节的空间大小,中文占用两个字节的空间大小。

Unicode

由于ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它经历了了以下三个阶段的发展:

utf-32:(全部文字都占用了四个字节

utf-16:全部文字占用了两个字节

utf-8(可变长编码):不再像之前的utf-32,utf-16占用固定的字节,而是根据使用不同的语言来决定占用的空间大小。英文占用1个字节,中文占用三个字节。

常用数据格式

     常用数据格式如下:

  1.数字类型

整型(int),长整型(long,python3中不区分整型和长整型),浮点型(float),复数(complex),

2.布尔型(bool)

真(True)或者假(False),0或者1

3.字符串

"hello world"

      万恶的字符串拼接:
         python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。(使用join函数解决该问题)
   
       字符串常用方法:
        1)移除空白:strip()  ,默认移除空格,tab和换行符,也可以再括号里指定移除的内容,如移动\r,strip('\r')
        2)分割:slipt(),括号内可以指定分割符
        3)长度:len(),例如:a='test',len(a)显示a的长度
        4)索引:index(),例如,a='test',a.index('e')
        5)切片:

>>> a='test'
>>> a[1:3] #正向顺序切片
'es'
>>> a[-2:] #反向顺序切片
'st'
>>> a[0::2] #2为步长,从第一个开始,隔一个取值
'ts'
   
      4.列表(list)
      列表常用方法:
      1)索引:index

>>> a=[1,2,3,4,5,6,'test','test1']
>>> a.index(2)
1
>>> a.index('test')
6
    2)切片:

>>> a=[1,2,3,4,5,6,'test','test1']
>>> a[1:3] #正向切片,包头不包尾,只切到索引到2的值
[2, 3]
>>> a[-3:] #逆向企鹅哦
[6, 'test', 'test1']
>>> a[0::3] #跳跃切片
[1, 4, 'test']
      3)追加:append(),会追到到最后
>>> a=[1,2,3,4,5,6,'test','test1']
>>> a.append('test2')
>>> a
[1, 2, 3, 4, 5, 6, 'test', 'test1', 'test2']
  4)删除:pop,remove

#pop()括号内填索引号,如果为空,默认为删除最后一个
>>> a
[1, 2, 3, 4, 5, 6, 'test', 'test1', 'test2']
>>> a.pop()
'test2'
>>> a.pop(2)
3
#remove()指定删除的列表内容
>>> a
[1, 2, 4, 5, 6, 'test', 'test1']
>>> a.remove('test')
>>> a
[1, 2, 4, 5, 6, 'test1']
  5)长度:len()
>>> a
[1, 2, 4, 5, 6, 'test1']
>>> len(a)
6
   6)插入:insert()   
>>> a
[1, 2, 4, 5, 6, 'test1']
>>> a.insert(2,'two') #括号内先写插入位置的索引值,后面写要插入的内容
>>> a
[1, 2, 'two', 4, 5, 6, 'test1']
     7)循环
    for i in list:
      print i
     8)包含
   9)list.copy 。我们用下面代码来进行说明列表的copy方法。列表内存的是每个值的内存地址,na2 copy test列表所存储的所有数值对应的内存地址。查看na2和test的内存位置,可以发现他们所指向的内存地址不是同一个。
test=['a','b','c',['d','e']]
na2=test.copy()
print('test:',id(test))
print('na2:',id(na2)) 结果:
test: 40552136
na2: 40550472

   这时候test[1]发生改变了,所以test列表中存贮的数值对应的内存值也发生了改变,故test列表发生了改变,但是na2跟test的内存的独立的,故na2的值并不会发生改变。但是这时候如果内嵌的列表发生改变了,test,na2也同时发生改变。这是因为test,na2存储的指向内嵌列表的内存值,这时候内嵌列表的存储内容发生改变了,该test,na2读取到的内嵌列表的内容也同时发生了改变、

test=['a','b','c',['d','e']
na2=test.copy()
print('na2:',na2)
test[1]='new'
print('test:',test)
print('na2:',na2)
test[3][1]='list_new'
print('test:',test)
print('na2:',na2)

打印结果如下:

na2: ['a', 'b', 'c', ['d', 'e']]
test: ['a', 'new', 'c', ['d', 'e']]
na2: ['a', 'b', 'c', ['d', 'e']]
test: ['a', 'new', 'c', ['d', 'list_new']]
na2: ['a', 'b', 'c', ['d', 'list_new']]
      5.元组(tunple)
    和列表一样,但它是只读列表,方法只有index和count。定义元组,通常是为了明确的表达 元组内的数据是常量,不要去改变它。
 
      6.字典(dict):由key:value组成,字典是无序的(无序通过索引值查找value,节省了空间),且key值必须唯一。  
    增:
      dict[key]=value;#key若不存在,则新增该键值对,如果key已存在,则会进行修改
      dict.fromkeys() #创建字典,并且给key赋予默认值,如果没有,则为None
name={}
name=name.fromkeys(['a','b'])
print(name)
name=name.fromkeys(['a','b'],'test')
print(name) 结果:
{'a': None, 'b': None}
{'a': 'test', 'b': 'test'}      
    删:
      dict.pop(key,return)   #使用该命令删除key值,如果key不存在,则返回设置的return值。如果不设置该值,则key不存在时会报错。
      dict.popitem()    #随机删除一个键值对
      del dict[key]
    改:
       dict[key]=value; #直接重新赋值给key来修改.
       dict.setdefault(key,value)#Value默认为None。如果设置的key值也存在,则返回对应的值,如果不存在,则会返回设置的value值,并将该键值对添加进字典里 
         dict.update(dict_1) :update会合并dict_1的内容,如果合并的key值已存在,则value值更新,如果不存在 ,则新增进去。要注意的是,改变的只是dict,dict1内容并未改变。

na2={1:'a',2:'b'}
na3={1:'f',3:'d'}
na2.update(na3)
print(na2)
print(na3) 打印结果:
{1: 'f', 2: 'b', 3: 'd'}
{1: 'f', 3: 'd'}  
    查:
      dict_name  #直接输入字典名,查看字典所有内容
      dict[key]   #查看字典中key所对应的value值
      dict.get[key]  #功能与dict[key]一样,需要注意的是,使用dict[key]查询时,当key不存在则会报错,而dict.get[key]则会返回None.
      key in dict  #判断key是否在dict中,在则返回True,不包含则返回False
      dict.keys()  #查看字典的所以key值
      dict.values() #查看字典所有的value值
      7.集合(set)
     集合的特点是:天然去重,无序的。集合的作用可以用来做关系测试(交集,并集,差集,对称差集 ),定义两个集合如下:
set1={'this','is','test'}
set2={'this','is','different'}

    可以使用intersection方法或者&来表示交集,交集即是两个集合重复的内容。

print(set1.intersection(set2))
print(set1&set2)
结果:
{'is', 'this'}
{'is', 'this'}

    并集,即是两个集合合并起来的内容,可以使用union方法或者‘ | ’ 来表示

print(set1.union(set2))
print(set1|set2)
结果:
{'different', 'is', 'test', 'this'}
{'different', 'is', 'test', 'this'}

    差集,即set1和set2对比,不同的部分。test1和test2比较,只会显示set1有的,而set2没有的内容。set2而set1没有的并不会显示。用difference或者 ‘ -’来表示

print(set1.difference(set2))
print(set1-set2) 结果:
{'test'}
{'test'}

    对称差集,将set1和set2都不同的元素都显示出来 。用 symmetric_difference 或者 ‘ ^’ 来表示

print(set1.symmetric_difference(set2))
print(set1^set2)
结果:
{'different', 'test'}
{'different', 'test'}
数据运算
    参考:http://www.runoob.com/python/python-operators.html
 
课后作业
      1.跳出三层循环
#跳出三层循环
loop_1=False #设置一层循环结束标志,如果为真则结束一层循环
loop_2=False #设置两层循环结束标志,如果为真则结束第二层循环
for i in range(10):
if loop_1:
break
print("'i'-----------",i)
if i>5:
for j in range(5):
if loop_2:
loop_1=True
break
print("'j'----------",j)
for k in range(3):
if k>1:
loop_2=True
break
print("'k'------", k)
else:
print('正常结束循环')
   

Python之路-python基础二的更多相关文章

  1. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  2. Python之路Python内置函数、zip()、max()、min()

    Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算, ...

  3. Python之路Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    Python之路Python作用域.匿名函数.函数式编程.map函数.filter函数.reduce函数 一.作用域 return 可以返回任意值例子 def test1(): print(" ...

  4. Python之路Python全局变量与局部变量、函数多层嵌套、函数递归

    Python之路Python全局变量与局部变量.函数多层嵌套.函数递归 一.局部变量与全局变量 1.在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量.全局变量作用域是整个程序,局 ...

  5. 自学Python之路-Python核心编程

    自学Python之路-Python核心编程 自学Python之路[第六回]:Python模块       6.1 自学Python6.1-模块简介    6.2 自学Python6.2-类.模块.包  ...

  6. 自学Python之路-Python并发编程+数据库+前端

    自学Python之路-Python并发编程+数据库+前端 自学Python之路[第一回]:1.11.2 1.3

  7. 自学Python之路-Python网络编程

    自学Python之路-Python网络编程 自学Python之路[第一回]:1.11.2 1.3

  8. Python之路Python文件操作

    Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...

  9. Python之路 day1 基础1 变量 for while 用户输入

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

  10. python之路: 基础篇

    )或>>> name = )    #按照占位符的顺序):]        #下标识从0开始的 wulaoer >>> print name[:]        # ...

随机推荐

  1. 力扣(LeetCode)219. 存在重复元素 II

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k. 示例 1: 输入: nums = ...

  2. 《剑指offer》第五十六题(数组中只出现一次的两个数字)

    // 面试题56(一):数组中只出现一次的两个数字 // 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序 // 找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度 ...

  3. JS中UTF-8和UTF-16互转

    1.由于服务端使用的Go,默认是使用UTF-8编码的,而JS默认是Unicode编码的(也就是UTF-16),所以为了字符串编码的一致性,将前端字符串数据编码转换为UTF-8之后再发送给服务端,服务端 ...

  4. 推送消息 web push notification

    参考 : https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications/   ( step b ...

  5. python中函数与函数式编程(二)

    首先要明白为什么要用到返回值,返回值的作用就是为了分情况来处理下面的程序(个人见解总结) 1.函数返回值 def test1(): pass def test2(): return 0 def tes ...

  6. Servlet 小知识

    1.In servlet 3.0 we have new feature annotations to replace XML.也就是说应该尽量使用annotations Servlet is an ...

  7. Getting started with Processing 第九章总结

    函数 函数的力量在于模块化. 范例 掷骰子 rollDice()函数 rollDice(int numSides){int d = 1+int(random(numSides));println(&q ...

  8. Feign二: @FeignClient 接口调用

    在项目的启动文件加入:@EnableFeignClients 注解, import org.springframework.boot.SpringApplication; import org.spr ...

  9. 雷林鹏分享:jQuery EasyUI 表单 - 过滤下拉数据网格

    jQuery EasyUI 表单 - 过滤下拉数据网格 下拉数据网格(Combogrid)组件和下拉框(Combobox)组件的共同点是,除了都具有下拉面板以外,它们都是基于数据网格(Datagrid ...

  10. LeetCode--007--整数反转(java)

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321  示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出 ...