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