已然好久沒有在csdn上寫文章了,這些系列文章是為了學習python而做的筆記
# -*- coding: utf-8 -*-
# coding: utf-8
# 單行注釋
'''第一行
第二行'''
"""多行注釋
在python中 ' 和 " 都是一樣的
"""# 連線行
str = 'abcd' \
'efgh'
print(str)
str = 'hello \n world'
print(str)
str = """hello
world"""
print(str) # 倆行
print('abc"123"efg') # abc"123"efg
print("abc'123'efg") # abc'123'efg
print('abc\'123\'efg') # abc'123'efg
#----------------------------------#
print(type([1, 2, 3, 'a', 'b'])) # list
print(type((1, 'abc'))) # tuple
print(type(set(['a', 'b', 3]))) # set
print(type()) # dict
def func(a, b, c):
print(a, b, c)
print(type(func)) # function
a = func
print(type(a)) # function
import string
print(string) # module
# 類和類的例項
class myclass(object):
pass
print(type(myclass)) # type
my_class = myclass()
print(my_class) # __main__.myclass object at ox101caca10
# for 迴圈
for i in range(0, 30, 5):
print(i)
while 迴圈
a = 0
i = 1
while i<=100:
a +=i
i +=1
print(a)
# 函式元組
def func_name(arg_1, arg_2):
print(arg_1, arg_2) # (1, 2)
return arg_1, arg_2
r = func_name(1, 2)
print(type(r)) # tuple
print(r[0], r[1])
def func(x, y=500):
print('x=', x)
print('y=', y)
return x+y
print(func(100))
print(func( y = 300, x = 200 ))
print(func( x = 400))
def func(p):
print('x=', p['x'])
print('y=', p['y'])
print(func())
# 可變引數 *numbers是元組 會將後面的引數打包成乙個唯讀陣列
def func(name, *numbers):
print(type(numbers))
print(numbers)
func('tom', 1, 2, 3, 4, 'adb12', 'd')
def func(*args):
print(args)
print(type(args)) # tuple
func(1, 2, 3, 'a', 'b', 'c')
func('x=', 100, '; y=', 200)
# 字典 **kvs means key/values
def func(name, **kvs) :
print(name)
print(type(kvs)) # dict
print(kvs)
func('tom', china = 'beijing', uk = 'london')
# 可變引數必須放在後面 且 * 為必須帶名字
def func(a, b, c, *, china, uk):
print(china, uk)
func(1, 2, 3, china = 'bj', uk = 'ld') # 2.7.x 貌似不支援
def func(a, b, c=0, *args, **kvs):
print(a, b, c)
print(args)
print(kvs)
func(1, 2)
func(1, 2, 3)
func(1, 2, 3, 'a', 'b', 'c')
func(1, 2, 3, 'a', 'b', china = 'bj', uk = 'ld')
func(1, 2, 3, *('a', 'b'), **)
# 遞迴問題
def my_sum(i):
if i < 0 :
raise valueerror
elif i <= 1 :
return i
else :
return i + my_sum(i-1)
print(my_sum(1))
print(my_sum(5))
print(my_sum(500))
# f(n) = f(n-1) + f(n-2)
def fib(n):
if n < 1 :
raise valueerror
elif n <=2 :
return 1
else :
return fib(n-1) + fib(n-2)
print(fib(40))
# 函式是可以作為引數
def sum(x, y, p = none ) :
s = x + y
if p:
p(s)
return s
sum(100, 200)
sum(100, 200, print) # can not run in python2.7x
def cmp(x, y, cp = none) :
if not cp :
if x > y :
return 1
elif x < y :
return -1
else :
return 0
else :
return cp(x, y)
def my_cp(x, y):
if x < y :
return 1
elif x == y :
return 0
else :
return -1
print(cmp(100, 200))
print(cmp(100, 200, my_cp))
print([1,2,3,4], sum)
def do_sum(data , method):
return method(data)
print(sum([10, 20]))
print(do_sum([1, 2, 3, 4], sum) )
# homework : change ' hello, how are u? ' to ' u? are how ,hello '
# 思路:先將單詞逆序,再將整個句子逆序
def reverse(str_list, start, end):
while(start < end):
str_list[start], str_list[end] = str_list[end], str_list[start]
start += 1
end -= 1
setence = ' hello, how are u? '
str_list = list(setence)
i = 0
while i < len(str_list):
if str_list[i] != ' ':
start = i
end = start + 1
while (end < len(str_list)) and str_list[end] != ' ':
end +=1
reverse(str_list, start, end - 1)
i = end
else:
i += 1
str_list.reverse()
print(''.join(str_list))
i'm fish, i'm on.
python基礎之零碎
1 變數是表示 或指向 特定值的名稱。例 x 3 就是講變數x與值 或物件 3關聯起來。變數就像是臨時 儲存區 其真正的威力就在於無需知道它們儲存的值就能操作它們。請注意,這裡給 儲存區 加上引號。值並非儲存在變數中,而是儲存在變數指向的計算機記憶體中。多個變數可以指向同乙個值。例如 x y表示x和...
Python零碎筆記
魔法方法 在python中,有一些內建好的特定的方法,這些方法在進行特定的操作時會自動被呼叫,稱之為魔法方法。常見的魔法方法有 init 初始化函式,在建立例項物件為其賦值時使用,必須至少有乙個引數self。new 建構函式,建立並返回乙個例項物件。必須要有返回值,返回例項化出來的例項。class ...
網路基礎零碎筆記
c windows system32 drivers etc hosts 對稱加密演算法 採用單鑰系統的加密方法,用乙個金鑰可以同時用作資訊的加密和解密,這種加密方法稱為對稱加密,也稱為單金鑰加密。非對稱加密演算法 有公開金鑰和私有金鑰 有乙個精彩的比喻 需要加密的檔案就像羽毛球,加密手段就是那個裝...