關於python的基礎知識學習,網上有不少資料,今天我就把我收藏的整理一下分享給你們!html
下面是我基礎學習時的一點記錄:python
n=10 sum = 0 counter = 1 while counter < n: sum = sum + counter counter += 1 print("1到%d之和爲:%d" %(n, sum)) #while 循環使用 else 語句 count = 0 while count < 5: print (count, " 小於 5") count = count + 1 else: print (count, " 大於或等於 5")
#可使range以指定數字開始並指定不一樣的增量(甚至能夠是負數,有時這也叫作'步長') for i in range(0, 10, 3): print(i) for i in range(-10, -100, -30): print(i) a_list = ['google', 'baidu', 'ie', 'firefox', '360'] for i in range(len(a_list)): print(i, a_list[i]) #使用range建立列表 b_list = list(range(8)) print(b_list)
#使用break終止循環 for letter in 'helloworld': if letter == 'r': break print("當前字母爲:", letter) #使用continue跳過循環 for letter in 'helloworld': if letter == 'l': continue print("當前字母爲:", letter)
#說明:pass就是一條空語句。在代碼段中或定義函數的時候,若是沒有內容,或者先不作任何處理,直接跳過,就可使用pass。 for letter in 'helloworld': if letter == 'l': pass print("執行pass塊") print("當前字母爲:", letter)
c_list = [12, 34, 56, 78, 90] for i, j in enumerate(c_list): print(i, j)
for i in range(1, 6): for j in range(1, i+1): print('*',end='') print('\r')
for i in range(1, 10): for j in range(1, i+1): print("%d * %d = %d" %(j, i, i*j), end='\t') print('\r')
def paixu(d_list): for i in range(0, len(d_list)): for j in range(i+1, len(d_list)): if d_list[i] >= d_list[j]: tmp = d_list[i] d_list[i] = d_list[j] d_list[j] = tmp print(d_list) li = [32, 23, 65, 32, 76, 79, 56, 89, 12] paixu(li)
迭代器是一個能夠記住遍歷的位置的對象。編程
迭代器對象從集合的第一個元素開始訪問,直到全部的元素被訪問完結束。迭代器只能往前不會後退。微信
迭代器有兩個基本的方法:iter() 和 next()。閉包
import sys it = iter(c_list) print(c_list) print(next(it)) for x in it: print(x, end=' ') it1 = iter(c_list) while True: try: print(next(it1)) except StopIteration: sys.exit()
在 Python 中,使用了 yield 的函數被稱爲生成器(generator)。
調用一個生成器函數,返回的是一個迭代器對象。
在調用生成器運行的過程當中,每次遇到 yield 時函數會暫停並保存當前全部的運行信息,返回 yield 的值, 並在下一次執行 next() 方法時從當前位置繼續運行。函數
def fibonacci(n): a = 0; b = 1; counter = 0; while True: if (counter > n): return yield a a, b = b, a + b counter += 1 #生成器函數返回一個迭代器 fibo = fibonacci(10) while True: try: print(next(fibo), end=' ') except: sys.exit()
#加了星號(*)的變量名會存放全部未命名的變量參數。若是在函數調用時沒有指定參數,它就是一個空元組。咱們也能夠不向函數傳遞未命名的變量。 def printinfo(arg1, *vartuple): "打印任何傳入的參數" print("輸出:") print(arg1) for var in vartuple: print(var) return printinfo(10) printinfo(10, 20, 30)
python 使用 lambda 來建立匿名函數。
所謂匿名,意即再也不使用 def 語句這樣標準的形式定義一個函數。學習
雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增長運行效率。ui
sum = lambda arg1, arg2: arg1 + arg2 print(sum(10,20))
Python中變量的做用域一共有4種,分別是:google
以 L –> E –> G –>B 的規則查找,即:在局部找不到,便會去局部外的局部找(例如閉包),再找不到就會去全局找,再者去內建中找。spa
B = int(2.9) # 內建做用域 G = 0 # 全局做用域 def outer(): E = 1 # 閉包函數外的函數中 def inner(): L = 2 # 局部做用域
import pickle import os datafile = 'C:\\Users\\root\\Desktop\\PyDemo\\person.data' line = '#########################################' message = ''' ####################################### *Welcome bookmark: * * press 1 to show list * * press 2 to add pepole * * press 3 to edit pepole * * press 4 to delete pepole * * press 5 to search pepole * * press 6 to show menu * * press 0 to quit * ####################################### ''' #打印菜單欄 print(message) #建立一我的類,有姓名和電話號兩個屬性 class Person(object): def __init__(self, name, number): self.name = name self.number = number #獲取數據 def get_data(filename = datafile): if os.path.exists(filename) and os.path.getsize(filename): with open(filename, 'rb') as f: return pickle.load(f) return None #寫入數據 def set_data(name, number, filename = datafile): personList = {} if get_data() == None else get_data() with open(filename, 'wb') as f: personList[name] = Person(name, number) pickle.dump(personList, f) #保存字典格式的數據到文件 def save_data(dictPerson, filename = datafile): with open(filename, 'wb') as f: pickle.dump(dictPerson, f) #顯示全部聯繫人信息 def show_all(): personList = get_data() if personList: for v in personList.values(): print(v.name, v.number) print(line) else: print('空空如也,請添加聯繫人!') print(line) #添加聯繫人 def add_person(name, number): set_data(name, number) print('添加聯繫人成功!') print(line) #更新聯繫人 def edit_person(name, number): personList = get_data() if personList: if name in personList.keys(): personList[name] = Person(name, number) save_data(personList) print('更改聯繫人信息成功!') else: print('查無此人', name, ',請重試!') print(line) #刪除聯繫人 def del_person(neme): personList = get_data() if personList: if name in personList: del personList[name] save_data(personList) print('刪除聯繫人成功!') else: print(name, '不存在!') print(line) #查詢聯繫人 def find_person(name): personList = get_data() if personList: if name in personList.keys(): print(personList.get(name).name, personList.get(name).number) else: print('查無此人!', name) print(line) while True: num = input('>>>') if num == '1': print('查看全部聯繫人:') show_all() elif num == '2': print('添加聯繫人:') name = input('請輸入聯繫人姓名 >>') number = input('輸入聯繫人電話號 >>') add_person(name, number) show_all() elif num == '3': print('更新聯繫人:') name = input('請輸入聯繫人姓名 >>') number = input('輸入聯繫人電話號 >>') edit_person(name, number) show_all() elif num == '4': print('刪除聯繫人:') name = input('請輸入聯繫人姓名 >>') del_person(name) show_all() elif num == '5': print('查找聯繫人:') name = input('請輸入聯繫人姓名 >>') find_person(name) elif num == '6': print(message) elif num == '0': break else: print('輸入錯誤,請重試!')
個人我的微信訂閱號:【Java編程社區】 歡迎你的加入!