python基礎

 

shell作業
1. 取出文件基名
 ????法一:cat 1.txt | egrep -o "[^/]+$"
 ????法二:awk -F/ '{print $NF}' 1.txt
 
2. 取ip地址
 ????法一:ifconfig eth0 | grep "inet addr" | awk '{print $2}' | cut -d: -f2
 ????法二:ifconfig eth0 | egrep -o 'addr:[0-9\.]+' |cut -d: -f2
 ????法三:ifconfig eth0 | awk -F'[: ]+' '/inet addr/{print $4}'
 ?????????ifconfig eth0 | awk -F'[[:space:]:]+' '/inet addr/{print $4}'
 
3. 百度云網頁
 ????法一:egrep -o '[^"><]+mp4' baiduyun.txt | sort -u
 ????法二:awk 'BEGIN{RS=">|<"} /mp4$/{print($0)}' baiduyun.txt
 
基礎知識
1. 馮諾依曼體系架構
 ????CPU:由運算器和控制器組成
 ????運算器:完成算數運算、邏輯運算、數據傳輸
 ????控制器:控制程序的執行
 ????存儲器:用于記憶程序和數據(內存)
 
2. 高級語言與低級語言
 ????高級語言和低級語言之間的轉換工具:編譯器和解釋器
 ????C、C++需要本地編譯
 ????java、python需要被解釋器編譯成中間代碼,在虛擬機上運行
 ????編譯語言把源代碼轉換成目標機器的CPU指令
 ????解釋語言,解釋后轉換成字節碼,運行在虛擬機上,解釋器執行中間代碼
 
3. Python解釋器
 ????CPython:最廣泛的解釋器
 ????iPython:交互式、功能增強的Cpython
 ????PyPy:JIT技術,動態編譯Python代碼
 ????Jython:Python的源代碼編譯成java的字節碼,跑在JVM上
 ????IronPython:與Jython類似,python代碼編譯成.Net的字節碼
 
4. Python基礎
 ????注釋:#
 ????布爾:True、False
 ????十六進制:0xa??八進制:0o10??二進制:0b10
 ????字符串:使用能夠''或""引用字符的序列,''' """單雙三引號,可以跨行、可以在其中自由的使用單雙引號
 ????????????在字符串前面加上r或者R前綴,表示該字符不做特殊處理
 
5. 基礎語法
 ????標識符:可以用字母、下劃線和數字,但只能以字母或下劃線開頭,不能使用如def等作為關鍵字,大小寫有區別。
 ????不允許使用中文,不能使用歧義單詞,不能隨意用下劃線開頭的表示符。
 ????常量:賦值后就不能改變值的標識符,python無法定義常量
 ????變量:賦值后,可以改變值得標識符
 
6. python語言類型
 ????python是動態、強類型語言。
 ????靜態編譯語言:實現聲明變量類型,類型不能再改變,編譯時檢查
 ????動態編譯語言:不需要事先聲明類型,隨時可以賦值為其他類型;編程時不知道是什么類型。
 ????強類型語言:不同類型之間操作,必須先強制類型轉換為同一類型。print('a'+1)
 ????弱類型語言:不同類型間可以操作,自動隱式轉換。
 
7. 算數運算符和位運算符
 ????加+??減-??乘*??除/???取余%??冪**
 ????/結果是浮點數,//整除
 ????與&??或|??取反~??異或^??左移<<??右移>>
 ????
8. 原碼、反碼、補碼
 ????原碼:5 => 0000 0101?
 ????反碼:正數將原碼按位取反;負數符號位不變其余按位取反
 ????補碼:正數的補碼是其本身;負數符號位不變其余按位取反后+1
 ????~12:-13???0000 1100 (取反)--> 1111 0011(-1) --> 1111 0010(除符號位,按位取反) --> 1000 1101=-13
 
9. 運算符
 ????比較運算符: 等于==??不等于!=??大于>??小于<??大于等于>=??小于等于<=
 ????邏輯運算符:與或非??and or not
 ????賦值運算符: +=???-=???*=???/=??%=??
 ????成員運算符: in 、not in
 ????身份運算符: is 、is not
 
10. 程序控制
 ?????順序,分支,循環
 ??????while循環 for循環 if..eles..判斷
 ?????while True:
 ????????block
 
 ?????for _ in range(10):?
 ?????????print('*')
 ?
 ?????if a>b:
 ?????????print(b,a)
 ?????else:
 ????????print(a,b)
 ????????
11. continue與break
 ??????continue:跳出當前循環,開始下次循環。
 ??????break:結束循環操作
 
程序練習:
(1)???打印菱形:
 ????for i in range(-3,4):
 ????????space = -i if i < 0 else i
 ????????print(' '*space + '*'*(7-2*space))
 ??????打印非對稱菱形:
 ????for i in range(-3,4):
 ????????if i<0:
 ??????????????print(' '*(-i) + '*'*(4+i))
 ????????elif i==0:
 ??????????????print('*'*7)
 ????????else:
 ??????????????print(' '*3 + '*'*(4-i))
 
(2)???99乘法表:
 ??????for i in range(1,10):
 ??????????for j in range(1,i+1):
 ??????????????print('{0}*{1}={2:<2}' .format(i,j,i*j),end=' ')
 ??????????print()
 
 ??????99乘法表倒置(1):
 ??????for i in range(1,10):
 ??????????print(' '*7*(i-1),end=" ")
 ??????????for j in range(i,10):
 ??????????????print('{0}*{1}={2:<2}' .format(i,j,i*j),end=' ')
 ??????print()
 ??????
 ??????99乘法表倒置(2):
 ??????for i in range(1,10):
 ??????????line = ''
 ??????????for j in range(1,10):
 ??????????????if i>j:
 ??????????????????line = '{}??{}??{:<4}' .format(' ',' ',' ')
 ??????????????else:
 ??????????????????line = '{} * {} = {:<4}' .format(i,j,i*j)
 ??????????????print(line,end=' ')
 ??????????print()??????
 
(3)????求10萬以內的質數:
 ??????import datetime
 ??????start = datetime.datetime.now()
 ??????for i in range(101,1,-2):??
 ??????????for j in range(3,i**0.5+1,2):
 ??????????????if i%j==0:
 ??????????????????break
 ??????????else:???????
 ??????????????print(i)
 ??????end = datetime.datetime.now() - start
 ?????????????????
(4)????求斐波那契數列第101項:
 ???????a=1
 ???????b=1
 ???????index=2
 ???????print('{0},{1}' .format(0,1))
 ???????print('{0},{1}' .format(1,1))
 ???????print('{0},{1}' .format(2,1))
 ???????while True:
 ???????????c=a+b
 ???????????a=b
 ???????????b=c
 ???????????index += 1
 ???????????print('{0},{1}' .format(index,c))
 ???????????if index == 101:
 ???????????????break
 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87284

(0)
miraclermiracler
上一篇 2017-09-16 20:41
下一篇 2017-09-17 18:09

相關推薦

  • StringIO

    StringIOio模塊中的類From io import StringIO內存中,開辟的一個文本模式的buffer,可以像文件對象一樣操作它當close方法被調用的時候,這個buffer會被釋放StringIO操作getvalue() 獲取全部內容。跟文件指針沒有關系from io import StringIO# 內存中構建sio = StringIO(…

    Python筆記 2018-05-07
  • 返回值&&作用域&&樹

    返回值&&作用域&&樹

    2017-10-17
  • python學習總結

    內建函數、函數、插入排序、樹

    2018-04-15
  • 裝飾器

    裝飾器 需求 一個加法函數,想增強它的功能,能夠輸出被調用過以及調用的參數信息 def add(x, y): return x + y 增加信息輸出功能 def add(x, y): print(“call add, x + y”) ?# 日志輸出到控制臺 return x + y p 上面的加法函數是完成了需求,但是有以下的缺點 打…

    Python筆記 2018-04-23
  • python學習第七周個人總結

    LEGB、遞歸函數、匿名函數、生成器函數、生成器應用、高階函數、柯里化、裝飾器、類型注解、functools.個人總結,加深印象。

    2018-04-22
  • 高階函數

    高階函數 Frist class object 函數在python中是一等公民 函數也是對象,可調用的對象 函數可以作為普通變量,參數,返回值等等 數學概念y=g(f(x)) 在數學和計算機科學中,高階函數應當是至少滿足下面一個條件的函數 接受一個或者多個函數作為參數 輸出一個函數 計數器: def counter(base):def inc(step=1)…

    Python筆記 2018-04-23
欧美性久久久久