亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Python學習--最完整的基礎知識大全

王笑朝 / 848人閱讀

摘要:迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結束。迭代器有兩個基本的方法和。調用一個生成器函數(shù),返回的是一個迭代器對象。生成器函數(shù)生成器函數(shù)返回一個迭代器函數(shù)函數(shù)傳入不定長參數(shù)加了星號的變量名會存放所有未命名的變量參數(shù)。

Python學習--最完整的基礎知識大全

關于python的基礎知識學習,網上有很多資料,今天我就把我收藏的整理一下分享給大家!

菜鳥教程python2

菜鳥教程python3

Python2.7 入門指南

Python3.6 入門指南

廖雪峰Python教程

Python100例

Python中文開發(fā)者社區(qū)門戶

W3CPython基礎教程

下面是我基礎學習時的一點記錄:

python3 循環(huán)語句 1. while
n=10
sum = 0
counter = 1
while counter < n:
    sum = sum + counter
    counter += 1
print("1到%d之和為:%d" %(n, sum))

#while 循環(huán)使用 else 語句
count = 0
while count < 5:
   print (count, " 小于 5")
   count = count + 1
else:
   print (count, " 大于或等于 5")
2. for
#可以使range以指定數(shù)字開始并指定不同的增量(甚至可以是負數(shù),有時這也叫做"步長")
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創(chuàng)建列表
b_list = list(range(8))
print(b_list)
3. break和continue
#使用break終止循環(huán)
for letter in "helloworld":
    if letter == "r":
        break
    print("當前字母為:", letter)
#使用continue跳過循環(huán)
for letter in "helloworld":
    if letter == "l":
        continue
    print("當前字母為:", letter)
4. pass語句
#說明:pass就是一條空語句。在代碼段中或定義函數(shù)的時候,如果沒有內容,或者先不做任何處理,直接跳過,就可以使用pass。
for letter in "helloworld":
    if letter == "l":
        pass
        print("執(zhí)行pass塊")
    print("當前字母為:", letter)
5. 使用enumerate函數(shù)進行遍歷
c_list = [12, 34, 56, 78, 90]
for i, j in enumerate(c_list):
    print(i, j)
6. 小練習
循環(huán)練習
for i in range(1, 6):
    for j in range(1, i+1):
        print("*",end="")
    print("
")
9*9乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print("%d * %d = %d" %(j, i, i*j), end="	")
    print("
")
冒泡排序
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)
Python3 迭代器與生成器 迭代器

迭代器是一個可以記住遍歷的位置的對象。

迭代器對象從集合的第一個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會后退。

迭代器有兩個基本的方法: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 的函數(shù)被稱為生成器(generator)。
調用一個生成器函數(shù),返回的是一個迭代器對象。
在調用生成器運行的過程中,每次遇到 yield 時函數(shù)會暫停并保存當前所有的運行信息,返回 yield 的值, 并在下一次執(zhí)行 next() 方法時從當前位置繼續(xù)運行。

生成器函數(shù)
def fibonacci(n):
    a = 0;
    b = 1;
    counter = 0;
    while True:
        if (counter > n):
            return
        yield a
        a, b = b, a + b
        counter += 1
#生成器函數(shù)返回一個迭代器
fibo = fibonacci(10)

while True:
    try:
        print(next(fibo), end=" ")
    except:
        sys.exit()
函數(shù) 函數(shù)傳入不定長參數(shù)
#加了星號(*)的變量名會存放所有未命名的變量參數(shù)。如果在函數(shù)調用時沒有指定參數(shù),它就是一個空元組。我們也可以不向函數(shù)傳遞未命名的變量。
def printinfo(arg1, *vartuple):
    "打印任何傳入的參數(shù)"
    print("輸出:")
    print(arg1)
    for var in vartuple:
        print(var)
    return

printinfo(10)
printinfo(10, 20, 30)
匿名函數(shù)

python 使用 lambda 來創(chuàng)建匿名函數(shù)。
所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數(shù)。

lambda 只是一個表達式,函數(shù)體比 def 簡單很多。

lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。

lambda 函數(shù)擁有自己的命名空間,且不能訪問自己參數(shù)列表之外或全局命名空間里的參數(shù)。

雖然lambda函數(shù)看起來只能寫一行,卻不等同于C或C++的內聯(lián)函數(shù),后者的目的是調用小函數(shù)時不占用棧內存從而增加運行效率。

sum = lambda arg1, arg2: arg1 + arg2
print(sum(10,20))
變量的作用域

Python中變量的作用域一共有4種,分別是:

L (Local) 局部作用域

E (Enclosing) 閉包函數(shù)外的函數(shù)中

G (Global) 全局作用域

B (Built-in) 內建作用域

以 L –> E –> G –>B 的規(guī)則查找,即:在局部找不到,便會去局部外的局部找(例如閉包),再找不到就會去全局找,再者去內建中找。

B = int(2.9)  # 內建作用域

G = 0  # 全局作用域
def outer():
    E = 1  # 閉包函數(shù)外的函數(shù)中
    def inner():
        L = 2  # 局部作用域
一個完整的demo
import pickle
import os

datafile = "C:Users
ootDesktopPyDemoperson.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)

#創(chuàng)建一個人類,有姓名和電話號兩個屬性
class Person(object):
    def __init__(self, name, number):
        self.name = name
        self.number = number

#獲取數(shù)據(jù)
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

#寫入數(shù)據(jù)
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)

#保存字典格式的數(shù)據(jù)到文件
def save_data(dictPerson, filename = datafile):
    with open(filename, "wb") as f:
        pickle.dump(dictPerson, f)

#顯示所有聯(lián)系人信息
def show_all():
    personList = get_data()
    if personList:
        for v in personList.values():
            print(v.name, v.number)
        print(line)
    else:
        print("空空如也,請?zhí)砑勇?lián)系人!")
        print(line)

#添加聯(lián)系人
def add_person(name, number):
    set_data(name, number)
    print("添加聯(lián)系人成功!")
    print(line)

#更新聯(lián)系人
def edit_person(name, number):
    personList = get_data()
    if personList:
        if name in personList.keys():
            personList[name] = Person(name, number)
            save_data(personList)
            print("更改聯(lián)系人信息成功!")
        else:
            print("查無此人", name, ",請重試!")
        print(line)

#刪除聯(lián)系人
def del_person(neme):
    personList = get_data()
    if personList:
        if name in personList:
            del personList[name]
            save_data(personList)
            print("刪除聯(lián)系人成功!")
        else:
            print(name, "不存在!")
    print(line)

#查詢聯(lián)系人
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("查看所有聯(lián)系人:")
        show_all()
    elif num == "2":
        print("添加聯(lián)系人:")
        name = input("請輸入聯(lián)系人姓名 >>")
        number = input("輸入聯(lián)系人電話號 >>")
        add_person(name, number)
        show_all()
    elif num == "3":
        print("更新聯(lián)系人:")
        name = input("請輸入聯(lián)系人姓名 >>")
        number = input("輸入聯(lián)系人電話號 >>")
        edit_person(name, number)
        show_all()
    elif num == "4":
        print("刪除聯(lián)系人:")
        name = input("請輸入聯(lián)系人姓名 >>")
        del_person(name)
        show_all()
    elif num == "5":
        print("查找聯(lián)系人:")
        name = input("請輸入聯(lián)系人姓名 >>")
        find_person(name)
    elif num == "6":
        print(message)
    elif num == "0":
        break
    else:
        print("輸入錯誤,請重試!")

我的個人微信訂閱號:【Java編程社區(qū)】 歡迎你的加入!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/41543.html

相關文章

  • 后端文章 - 收藏集 - 掘金

    摘要:為什么我會說它們是一樣的簡單思考一下我的后端書架后端掘金我的后端書架月前本書架主要針對后端開發(fā)與架構。一方案調研版本選擇當前主流版本是和應用的后臺運行配置后端掘金醬油一篇,整理一下關于后臺運行的一些配置方式。 分享 50 個完整的 React Native 項目 - 掘金本文為 Marno 原創(chuàng),轉載必須保留出處! 公眾號 aMarno,關注后回復 RN 加入交流群 簡書專題《 Rea...

    CntChen 評論0 收藏0
  • Python入門資料大全(更新ing)

    摘要:在線挑戰(zhàn),還沒用過,貌似現(xiàn)在對英文資料心里還有種抵觸,必須克服實驗樓研發(fā)工程師包含了等學習課程。書的作者就是開發(fā)了用于數(shù)據(jù)分析的著名開源庫的作者英文資料,對數(shù)據(jù)分析中要用到的一些庫,等等做了簡要介紹。形式的資料,示例代碼都很全。 showImg(https://segmentfault.com/img/remote/1460000004852849); 一、說明 面對網絡上紛繁復雜的資...

    wuaiqiu 評論0 收藏0
  • Python各熱門方向常用學習、工作網址大全【7000字大總結】

    摘要:做這一領域的工作,有很多網站能夠起到輔助性的作用。再加上爬蟲相對于其他熱門方向來說,更容易學。也促使更多人會優(yōu)先選擇學習爬蟲。能夠代替手工完成手工無法完成的測試任務,并且可以記錄相關數(shù)據(jù)及報告。 ...

    linkFly 評論0 收藏0
  • Python基礎題目大全,測試你水平,鞏固知識(含答案)

    摘要:里,有兩種方法獲得一定范圍內的數(shù)字返回一個列表,還有返回一個迭代器。在引用計數(shù)的基礎上,還可以通過標記清除解決容器對象可能產生的循環(huán)引用的問題。列舉常見的內置函數(shù)的作用,過濾函數(shù),循環(huán)函數(shù)累積函數(shù)一行代碼實現(xiàn)乘法表。 showImg(https://segmentfault.com/img/remote/1460000019294205); 1、為什么學習Python? 人生苦短?人間...

    huhud 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<