摘要:定義默認參數要牢記一點默認參數必須指向不變對象尾遞歸調用函數本身,但是的返回值不包含表達式。而尾指針相當于把常規的遞歸反過來,增加一層遞歸的同時釋放前一個遞歸指針,所以能夠始終保持只有一個棧幀在使用中。
教程
1、python大小寫敏感
如果字符串里面有很多字符都需要轉義,就需要加很多,為了簡化,Python還允許用r""表示""內部的字符串默認不轉義
>>> print " " >>> print r" "
如果字符串內部有很多換行,用 寫在一行里不好閱讀,為了簡化,Python允許用"""..."""的格式表示多行內容
>>> print """line1 ... line2 ... line3""" line1 line2 line3
注意:.py文件里輸入中文,然后在解析器執行文件,發現報錯。
解決辦法:在文件頭部加上#coding:utf-8
如果設置為gbk則不行,原因很簡單,我用的編輯器的編碼為utf-8,所以我保存的文件自動為utf-8,如果文件的頭部設置為gbk編碼的話,那么解析器去解析時用gbk解析,所以會報錯。
3、python 有序集合(list)
如果要取最后一個元素,除了計算索引位置外,還可以用-1做索引,直接獲取最后一個元素
>>> classmates[-1] "Tracy
*另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改
循環是讓計算機做重復任務的有效的方法,有些時候,如果代碼寫得有問題,會讓程序陷入“死循環”,也就是永遠循環下去。這時可以用Ctrl+C退出程序,或者強制結束Python進程。
4、空函數
如果想定義一個什么事也不做的空函數,可以用pass語句:
def nop(): pass
空函數可以作為占位符,此時不定義,可以在以后定義。比如我們可以這樣使用它:
if a>12: pass
5、定義一個函數
import math def move(x,y,step,radius): x1 = x + step * math.cos(radius) y1 = y - step * math.sin(radius) return x1,y1 print move(2,3,4,20)
總結:定義函數時,需要確定函數名和參數個數;
如果有必要,可以先對參數的數據類型做檢查;
函數體內部可以用return隨時返回函數結果;
函數執行完畢也沒有return語句時,自動return None。
函數可以同時返回多個值,但其實就是一個tuple。
定義默認參數要牢記一點:默認參數必須指向不變對象!
4、尾遞歸
調用函數本身,但是return的返回值不包含表達式。這么做可以防止遞歸層數過多,出現堆棧溢出的情況。因為常規遞歸會逐層添加棧幀,直到最后一個棧幀釋放后才開始釋放。而尾指針相當于把常規的遞歸反過來,增加一層遞歸的同時釋放前一個遞歸指針,所以能夠始終保持只有一個棧幀在使用中。
常規遞歸
def fact(n): if n==1: return 1 return n * fact(n - 1)
尾遞歸
def fact(n): return fact_iter(1, 1, n) def fact_iter(product, count, max): if count > max: return product return fact_iter(product * count, count + 1, max)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/37508.html
摘要:將程序包裝在界面里,可以將輸入通過多種途徑如文本框彈出路徑選擇等輸入到程序里。將輸出通過文本框顯示出來將執行信息如如報錯信息運行進度通過文本框或進度條顯示出來文章安排先介紹安裝和配合的使用。 作為一個程序的開發者,我們僅僅需要在相應路徑通過命令行就可執行那個程序。但是,不懂行的人不理解這個黑框框的東西,陌生領域任何人都沒有安全感,所以他們是拒絕接受一個項目僅僅只是通過一個黑框框來執行的...
摘要:用輸出,英文沒有問題,但是如果你輸出中文字符你好,世界就有可能會碰到中文編碼問題。實例你好,世界輸出結果為所以如果大家在學習過程中,代碼中包含中文,就需要在頭部指定編碼。注意源碼文件默認使用編碼,所以可以正常解析中文,無需指定編碼。 用 Python 輸出?Hello, World!,英文沒有問題,但是如果你輸出中文字符?你好,世界?就有可能會碰到中文編碼問題。 Python 文件中如...
摘要:本文是通過廖雪峰的網站學習而整理的真的是很好的教程,省得我花錢買書了,然后我沒有去再整理總結語法,而是直接通過寫出代碼段來體現自己的學習,也方便以后的快速復習回顧。 不想再像以前那樣,什么都從頭開始學習語法、總結語法,這樣反而會過分糾結于語法,耽誤了開發,畢竟語言的主要屬性是工具,次要的屬性是語言本身。 所以還是先熟練使用語言去進行開發,等足夠熟悉了,再去研究語言本身(編譯原理……)。...
摘要:博客寫得差不多了,打算部署到云上因為速度的關系,不打算部署在上,于是申請了阿里云,環境是上篇文章提到的位安裝和配置好和,又稍微了解點服務器的知識后,打算按這里的方法進行部署,思路是用當應用容器,當反向代理安裝安裝非常簡單,一條命令就解決了測 博客寫得差不多了,打算部署到云上因為速度的關系,不打算部署在AWS上,于是申請了阿里云,環境是上篇文章提到的CentOS 7 64位安裝和配置好P...
小編寫這篇文章的主要目的,就是給大家來介紹關于pycharm故障報錯的一些相關問題,涉及到的故障問題有keras導入報錯無法自動補全,另外,還有cannot find reference無法補全,遇到這種問題怎么處理呢?下面就給大家詳細解答下。 引言 目前無論是中文還是國外網站對于如何正確的導入keras,如何從tensorflow中導入keras,如何在pycharm中從tensorfl...
閱讀 963·2023-04-25 23:50
閱讀 1982·2021-11-19 09:40
閱讀 603·2019-08-30 13:50
閱讀 2734·2019-08-29 17:11
閱讀 1049·2019-08-29 16:37
閱讀 2993·2019-08-29 12:54
閱讀 2801·2019-08-28 18:17
閱讀 2643·2019-08-26 16:55