读廖雪峰的 Python 教程小结--------Python基础

来源:互联网 发布:mac安全性偏好设置卡死 编辑:程序博客网 时间:2024/05/05 15:35

地址:

http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

学过java和C的我接触Python的第一印象就是,哇!不需要声明变量类型!!!(我也不知道是好还是坏)

对于数据类型和变量

比如如果你想存储一个整形变量,直接就用 a = 2 就可以了(连分号也不需要,一行代表一个语句。。。。)

#整形 (用#表示注释)a = 2#浮点型b = 2.1#字符串c = "abcdefg"  (这里也可以用单引号‘’,好像没有区分) #布尔型d = Truee = False#常量,当然这个常量不是真的不能弄,而是我们自己规定而已,所以让我们知道用全大写PI = 3.14.......  

转义字符的都是差不多的,只是有几个我不知道的//GG,比如

#如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许#用'''...'''的格式表示多行内容#三个单引号啊!!!!>>> print('''line1... line2... line3''')line1line2line3

还有一个神奇的 r ,r : 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r”表示”内部的字符串默认不转义。
具体看例子

>>> print('\\\t\\')\       \>>> print(r'\\\t\\')\\\t\\

其他的都差不多的。
哦,还有一个Python不用 || 、&& 、!
而是用 or 、 and 、 not (好抽象具体啊)



对于字符串

关于字符的unicode编码和AscII码没什么好说的,简单来说就是unicode包含AscII码,更多更全,而UTF-8更是Unicode的升级版(就是更加好,用就是了)

这时候我们不但要在编译器选择UTF-8无bom格式,另外还要在代码开头加上

# -*- coding: utf-8 -*-

这样就能确保我们在用utf-8编码和解析了

这里教了几个函数

ord() 函数获取字符的整数表示
chr() 函数把编码转换为对应的字符
len() 计算的是str的字符数 ; 如果换成bytes,就计算字节数

decode() 要把bytes变为字符串类型
encode() 以Unicode表示的str通过encode()方法可以编码为指定的bytes

是不是觉得有的函数感觉没有什么用?这里我们要知道一个知识点(我也是刚刚知道。。。。GG)

  • 我们看到的显示是字符串类型,而如果要在网络上传输,或者保存到磁盘上,就需要把字符串类型变为以字节为单位的bytes。(Python对bytes类型的数据用带b前缀的单引号或双引号表示)

贴出例子,剩下的自己去上面的网子了解,自行理解

>>> b'ABC'.decode('ascii')'ABC'>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')'中文'
>>> len(b'ABC')3>>> len(b'\xe4\xb8\xad\xe6\x96\x87')6>>> len('中文'.encode('utf-8'))6

而关于格式化,我个人觉得都差不多的,看看例子

>>> 'Hello, %s' % 'world''Hello, world'>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)'Hi, Michael, you have $1000000.'
>>> 'growth rate: %d %%' % 7'growth rate: 7 %'




关于数据结构

在java中,集合框架总的来说有 数组(这个好像不是~.~)、List 、Map 、 Set (大概吧)

python也差不多拉,我个人觉得

  • Python 的 tuple 相当与数组
  • Python 的 list 相当于 List
  • Python 的 dict 相当与 Map
  • Python 的 set 相当于 Set

    1. tuple:tuple一旦初始化就不能修改,当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,例子:

      #通过classmates[0],classmates[-1] 调用>>> classmates = ('Michael', 'Bob', 'Tracy')#定义一个空的tuple        t = ()#定义一个只有1个元素的tuple,必须加上逗号, t = (1,)
    2. list:list是一种有序的集合,可以随时添加和删除其中的元素,例子:

      >>> classmates = ['Michael', 'Bob', 'Tracy']>>> classmates['Michael', 'Bob', 'Tracy']#往list中追加元素到末尾classmates.append('Adam')#把元素插入到指定的位置classmates.insert(1, 'Jack')#要删除list末尾的元素,用pop()方法>>> classmates.pop()>>> classmates.pop(1)  #指定位置#把某个元素替换成别的元素,可以直接赋值给对应的索引位置 classmates[1] = 'Sarah'
    3. dict :使用键-值(key-value)存储,直接例子:

      >>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}>>> d['Michael']95>>> d['Adam'] = 67>>> d['Adam']67#dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value>>> d.get('Thomas')>>> d.get('Thomas', -1)-1#通过in判断key是否存在>>> 'Thomas' in dFalse#删除一个key,用pop(key)方法,对应的value也会从dict中删除>>> d.pop('Bob')75>>> d{'Michael': 95, 'Tracy': 85}
    4. set:相当与数学中的集合,无序、不重复、确定的 集合 ,例子:

      #创建一个set,需要提供一个list作为输入集合>>> s = set([1, 2, 3])>>> s{1, 2, 3}#通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果>>> s.add(4)>>> s{1, 2, 3, 4}#通过remove(key)方法可以删除元素>>> s.remove(4)>>> s{1, 2, 3}




关于条件判断与循环

对于条件判断和循环也没什么好说的了,在C/C++和Java里面都用烂了
例子:

条件判断:

age = 20if age >= 18:    print('your age is', age)    print('adult')#注意不要少写了冒号:age = 3if age >= 18:    print('your age is', age)    print('adult')else:    print('your age is', age)    print('teenager')#elif是else if的缩写,完全可以有多个elif,所以if语句的完整形式就是,#用else if会报错的,我试过。。。。。。age = 3if age >= 18:    print('adult')elif age >= 6:    print('teenager')else:    print('kid')if <条件判断1>:    <执行1>elif <条件判断2>:    <执行2>elif <条件判断3>:    <执行3>else:    <执行4>#这是因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成#整数。Python提供了int()函数来完成这件事情s = input('birth: ')birth = int(s)if birth < 2000:    print('00前')else:    print('00后')

循环:

#for循环names = ['Michael', 'Bob', 'Tracy']for name in names:    print(name)sum = 0for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:    sum = sum + xprint(sum)#Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为#list。比如range(5)生成的序列是从0开始小于5的整数:>>> list(range(5))[0, 1, 2, 3, 4]sum = 0for x in range(101):    sum = sum + xprint(sum)# while循环sum = 0n = 99while n > 0:    sum = sum + n    n = n - 2print(sum)
#在循环中,break语句可以提前退出循环n = 1while n <= 100:    if n > 10: # 当n = 11时,条件满足,执行break语句        break # break语句会结束当前循环    print(n)    n = n + 1print('END')#在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环n = 0while n < 10:    n = n + 1    if n % 2 == 0: # 如果n是偶数,执行continue语句        continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行    print(n)

结语

这是我读廖雪峰的 Python 教程的Python基础部分,如果要看完整的当然要去作者廖雪峰那里看拉~.~,然后归纳一下这部分主要讲了数据类型(整形、浮点型、常量、布尔型、字符串等等)、数据结构(tuple、list、set、dict)、条件判断与循环(if 与 for\while)

原创粉丝点击