Python总结:Python基础(一)
Python之路【第二篇】:Python基礎(chǔ)(一)
入門(mén)知識(shí)拾遺
一、作用域
對(duì)于變量的作用域,執(zhí)行聲明并在內(nèi)存中存在,該變量就可以在下面的代碼中使用。
| 123 | if 1==1:????name = 'wupeiqi'print? name |
下面的結(jié)論對(duì)嗎?
外層變量,可以被內(nèi)層變量使用
內(nèi)層變量,無(wú)法被外層變量使用
二、三元運(yùn)算
| 1 | result = 值1 if 條件 else 值2 |
如果條件為真:result = 值1
如果條件為假:result = 值2
三、進(jìn)制
二進(jìn)制,01
八進(jìn)制,01234567
十進(jìn)制,0123456789
十六進(jìn)制,0123456789ABCDE
Python基礎(chǔ)
對(duì)于Python,一切事物都是對(duì)象,對(duì)象基于類創(chuàng)建
所以,以下這些值都是對(duì)象: "wupeiqi"、38、['北京', '上海', '深圳'],并且是根據(jù)不同的類生成的對(duì)象。
一、整數(shù)
如: 18、73、84
每一個(gè)整數(shù)都具備如下功能:
int
二、長(zhǎng)整型
可能如:2147483649、9223372036854775807
每個(gè)長(zhǎng)整型都具備如下功能:
long
三、浮點(diǎn)型
如:3.14、2.88
每個(gè)浮點(diǎn)型都具備如下功能:
float
四、字符串
如:'wupeiqi'、'alex'
每個(gè)字符串都具備如下功能:
str
注:編碼;字符串的乘法;字符串和格式化
五、列表
如:[11,22,33]、['wupeiqi', 'alex']
每個(gè)列表都具備如下功能:
list
注:排序;
六、元組
如:(11,22,33)、('wupeiqi', 'alex')
每個(gè)元組都具備如下功能:
tuple
七、字典
如:{'name': 'wupeiqi', 'age': 18} 、{'host': '2.2.2.2', 'port': 80]}
ps:循環(huán)時(shí),默認(rèn)循環(huán)key
每個(gè)字典都具備如下功能:
dict
| 123 | 練習(xí):元素分類有如下值集合 [11,22,33,44,55,66,77,88,99,90...],將所有大于 66 的值保存至字典的第一個(gè)key中,將小于 66 的值保存至第二個(gè)key的值中。即: {'k1': 大于66 , 'k2': 小于66} |
?八、set集合
set是一個(gè)無(wú)序且不重復(fù)的元素集合
set
| 123456789101112131415161718 | 練習(xí):尋找差異# 數(shù)據(jù)庫(kù)中原有old_dict = {????"#1":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 },????"#2":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }????"#3":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }}# cmdb 新匯報(bào)的數(shù)據(jù)new_dict = {????"#1":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 800 },????"#3":{ 'hostname':c1, 'cpu_count': 2, 'mem_capicity': 80 }????"#4":{ 'hostname':c2, 'cpu_count': 2, 'mem_capicity': 80 }}需要?jiǎng)h除:?需要新建:?需要更新:? 注意:無(wú)需考慮內(nèi)部元素是否改變,只要原來(lái)存在,新匯報(bào)也存在,就是需要更新 |
demo?
九、collection系列
1、計(jì)數(shù)器(counter)
Counter是對(duì)字典類型的補(bǔ)充,用于追蹤值的出現(xiàn)次數(shù)。
ps:具備字典的所有功能 + 自己的功能
| 123 | c = Counter('abcdeabcdabcaba') print c輸出:Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 1}) |
Counter
2、有序字典(orderedDict )
orderdDict是對(duì)字典類型的補(bǔ)充,他記住了字典元素添加的順序
OrderedDict
3、默認(rèn)字典(defaultdict)?
學(xué)前需求:
| 12 | 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],將所有大于 66 的值保存至字典的第一個(gè)key中,將小于 66 的值保存至第二個(gè)key的值中。即: {'k1': 大于66 , 'k2': 小于66} |
原生字典解決方法
defaultdict字典解決方法
defaultdict是對(duì)字典的類型的補(bǔ)充,他默認(rèn)給字典的值設(shè)置了一個(gè)類型。
defaultdict
4、可命名元組(namedtuple)?
根據(jù)nametuple可以創(chuàng)建一個(gè)包含tuple所有功能以及其他功能的類型。
| 123 | import collectionsMytuple = collections.namedtuple('Mytuple',['x', 'y', 'z']) |
Mytuple
5、雙向隊(duì)列(deque)
一個(gè)線程安全的雙向隊(duì)列
deque
注:既然有雙向隊(duì)列,也有單項(xiàng)隊(duì)列(先進(jìn)先出 FIFO )
Queue.Queue
迭代器和生成器
一、迭代器
對(duì)于Python 列表的 for 循環(huán),他的內(nèi)部原理:查看下一個(gè)元素是否存在,如果存在,則取出,如果不存在,則報(bào)異常?StopIteration。(python內(nèi)部對(duì)異常已處理)
listiterator
二、生成器
range不是生成器 和 xrange 是生成器
readlines不是生成器 和 xreadlines 是生成器
| 1234 | >>> print range(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> print xrange(10)xrange(10) |
生成器內(nèi)部基于yield創(chuàng)建,即:對(duì)于生成器只有使用時(shí)才創(chuàng)建,從而不避免內(nèi)存浪費(fèi)
| 1234567891011 | 練習(xí):<br>有如下列表:????[13, 22, 6, 99, 11]請(qǐng)按照一下規(guī)則計(jì)算:13 和 22 比較,將大的值放在右側(cè),即:[13, 22, 6, 99, 11]22 和 6 比較,將大的值放在右側(cè),即:[13, 6, 22, 99, 11]22 和 99 比較,將大的值放在右側(cè),即:[13, 6, 22, 99, 11]99 和 42 比較,將大的值放在右側(cè),即:[13, 6, 22, 11, 99,]13 和 6 比較,將大的值放在右側(cè),即:[6, 13, 22, 11, 99,]... |
Demo
深淺拷貝
為什么要拷貝?
| 1 | 當(dāng)進(jìn)行修改時(shí),想要保留原來(lái)的數(shù)據(jù)和修改后的數(shù)據(jù) |
數(shù)字字符串 和 集合 在修改時(shí)的差異? (深淺拷貝不同的終極原因)
| 123 | 在修改數(shù)據(jù)時(shí):????數(shù)字字符串:在內(nèi)存中新建一份數(shù)據(jù)?????????集合:修改內(nèi)存中的同一份數(shù)據(jù) |
對(duì)于集合,如何保留其修改前和修改后的數(shù)據(jù)?
| 1 | 在內(nèi)存中拷貝一份 |
對(duì)于集合,如何拷貝其n層元素同時(shí)拷貝?
| 1 | 深拷貝 |
作業(yè)
開(kāi)發(fā)一個(gè)簡(jiǎn)單的計(jì)算器程序
*實(shí)現(xiàn)對(duì)加減乘除、括號(hào)優(yōu)先級(jí)的解析,并實(shí)現(xiàn)正確運(yùn)算?
?
作者:武沛齊
出處:http://www.cnblogs.com/wupeiqi/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接。
轉(zhuǎn)載于:https://blog.51cto.com/sky66/1722611
總結(jié)
以上是生活随笔為你收集整理的Python总结:Python基础(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MySQL有关Group By的优化
- 下一篇: python模块介绍-locustio: