读廖雪峰的 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
tuple:tuple一旦初始化就不能修改,当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,例子:
#通过classmates[0],classmates[-1] 调用>>> classmates = ('Michael', 'Bob', 'Tracy')#定义一个空的tuple t = ()#定义一个只有1个元素的tuple,必须加上逗号, t = (1,)
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'
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}
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)
- 读廖雪峰的 Python 教程小结--------Python基础
- 读廖雪峰的 Python 教程小结--------Python函数
- 读廖雪峰的 Python 教程小结--------Python高级特性
- 廖雪峰python教程之python基础
- 廖雪峰的Python教程
- 廖雪峰python教程
- 廖雪峰Python教程 学习笔记4 Python基础
- 廖雪峰python教程——第一章 Python基础
- 廖雪峰的Git、Python教程
- 廖雪峰的0Python教程
- 廖雪峰的Python教程-网络编程
- 廖雪峰的Python教程-电子邮件
- 廖雪峰的Python教程-生成器
- 廖雪峰的Python教程学习笔记一Python简介和基础语法
- Python练习 - 廖雪峰教程
- 廖雪峰 Python教程 笔记
- 廖雪峰python教程阅读之函数的参数
- 廖雪峰的Python教程-高阶函数
- 使用java语言实现进制之间的相互转换
- 【iOS开发】iOS系统更新到10.3以上无法下载企业应用
- MAC系统安装Vue.js开发环境
- iOS中使用RSA加密
- WinPcap教程:(4)不用回调方式捕获数据包
- 读廖雪峰的 Python 教程小结--------Python基础
- 字符串匹配(Java)
- 在linux下运用mutt和msmtp发邮件
- Framework的anim下各xml简介
- Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant)
- JAVA基础(五)之Servlet
- 关于stm32stop模式下,串口唤醒中的问题及解决办法
- 当红架构Cloud_Native_怎么搭建才能成为上云助攻手?
- 2017CCPC女生赛 hdu 6024 Building Shops