<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # :-: 語言特性和基礎概念 [TOC] ## 一、語言特性 ### 1.程序自上而下運行 示例: ``` import time print(5) time.sleep(1) print(4) time.sleep(1) print(3) time.sleep(1) print(2) time.sleep(1) print(1) ``` 以上程序將逐行運行,每隔一秒打印一個數字,輸出結果如下: ~~~ 5 4 3 2 1 ~~~ ### 2.區分大小寫 `a = 10`與 `A = 10`,生成了兩個不同的變量。 ### 3.全部為英文狀態下的標點符號 編號語法中包括以下幾種標點符號必須使用英文符號,否則會報錯 - 逗號 `,` - 括號 `( ) [ ] { }` - 冒號 `:` - 空格 ` ` - 分號 `;` - *字符串里的內容不受限* ## 二、函數 函數可以簡單理解為完成特定功能的一段代碼,它分為兩部分: 1. 調用(使用別人寫好的函數的功能) 2. 定義(自己造輪子,完成特定功能,提供給自己和他人使用) >我們初期都是在學習如何調用函數,等掌握了基礎才開始嘗試定義自己的函數。 這里介紹兩個最常用的函數: ### 1.print() `print('hello world')` 這句話將 `hello world` 打印了出來。 還可以同時打印多個內容,并指定分隔符和結束符號: `print(1, 2, 3, sep='啦啦', end='#######')` 打印的內容是`1啦啦2啦啦3#######1` ### 2.input() `input("請輸入一個數字:")` 這句話將提示 `請輸入一個數字:` ,并等待用戶輸入,輸入完成后返回用戶輸入的內容。 - 返回的類型是字符串,后面會詳細介紹。 - **用戶輸入的值不可控**(你可能期待用戶輸入一個整數,但用戶可能輸入的是一串文字) - input() 由于需要等待用戶輸入后才繼續運行,所以可以作為程序暫停的一種方式。 ## 三、變量 ### 1.變量的概念 > 人類語言里面,當我們提到一個人或物體, 是怎么說的? > > 比如說 聊天的時候,提到你的一個同學, 提到一支球隊 > > 對了,用他們的**名字**。 > > 比如: 王曉剛同學, 湖人隊等等。 > > 如果不允許使用 事物的名字, 我們的話就沒法說了。 **變量可以理解為一種容器,里面可以存放任何東西**。如果放進一個蘋果,那容器里面就是蘋果,如果放一只鉛筆,那容器里面就是鉛筆。 計算機語言中,如果產生了數據對象,卻沒有用容量把它們存放起來,就像這樣 ~~~python 16 '我愛你中國' ~~~ 我們后面的代碼,怎么去使用這個數字`16`和 字符串`'我愛你中國'`呢?很顯然是沒辦法使用了。 編程語言為了方便操作數據對象,就需要使用容器存放數據對象,并給容器起一個名字。 我們把Python語言中容器的名字, 稱之為**變量名**, 有時也簡稱**變量**。 所以Python中的變量,就是容量的名字,存放著各種數據對象。 例: ``` A = 5 A = '中國' ``` 這里面 `A` 就是一個容器的名字,我們先把數字5放到`A`容器里,那`A`就代表數字5,我們再把`中國`放進`A`容器里,那`A`就代表`中國`。 ### 2.變量命名 >變量用的好或不好,和代碼質量有著非常重要的聯系,合理的使用變量,可以讓你的代碼可讀性更高并且更加簡潔。 #### 2.1.變量命名 **1)命名的規范性** - 變量名可以包括字母、數字、下劃線,但是數字不能做為開頭。 - 系統關鍵字不能做變量名使用,如print, input等 - 除了下劃線之外,其它符號不能做為變量名使用 ! - Python的變量名是區分大小寫的 **2)編程語言常用駝峰命名法** - 大駝峰:每一個單詞的首字母都大寫 FirstName LastName - 小駝峰:第一個單詞以小寫字母開始,后續單詞的首字母大寫 firstName lastName 但是在python中一般使用小駝峰加下劃線的方式 ``` has_error is_person ``` #### 2.2.變量命名的描述性 在接受范圍內,變量名所描述的內容越精準越好。 - BAD: day, host, cards, temp - GOOD: day_of_week, hosts_to_reboot, expired_cards 變量名能讓人猜出類型。 例如: Bool 類型 - is_user : 是否是用戶 例如: int/float 類型 - port:端口號 - age:年齡 這些很直觀的能讓人猜出類型。 >注意: 不要使用復數來表示一個 int 類型變量,比如 apples,最好用 number_of_apples來替代。 #### 2.3.變量名盡量短,但是不要太短 - 一個好的變量名,長度應該控制在兩到三個單詞左右 例如,`person_index` - 同一段代碼內不要使用過于相似的變量名,比如同時出現 `users`、`users1`、 `user3`。 - 不要使用帶否定含義的變量名,用 `is_special `代替 `is_not_normal`。 #### 2.4.合理使用變量 同一個變量名指代的變量類型,也需要保持一致性。 在一個函數中,一個變量名叫做 `photo`, 那么在其他地方就不要改成`image`。 #### 2.5. 變量定義盡量靠近使用 剛開始學習編程時,我們習慣把定義的變量放在開頭,或一些函數最前面。如下 ``` def get_name(): students = [] teachers = [] ``` >***~~第3至第6小點是變量使用技巧,可以以后再回來看~~*** ### 3.合理使用namedtuple/dict Python中的函數可以返回多個值,如果某一天我們想讓函數再多返回一個值怎么辦呢? ``` #之前 def get_name(): return student, teacher #現在 def get_name(): return student, teacher, parent ``` namedtuple/dict 此時可以派上用場 ``` #1. 使用dict def get_name(): return { 'student': student, 'teacher':teacher, 'parent' :parent } names_dict = get_name() # 2. 使用 namedtuple from collections import namedtuple Names = namedtuple("Names", ['student', 'teacher', 'parent']) def get_name(): return Names( student = student, teacher = teacher, parent = parent ) names = get_name() ``` **但是這樣不能像之前一樣,每一次解包多變量接受函數返回值。** ### 4. 控制單個函數內的變量數量 當某一函數過長時,或者包含太多變量時,請及時把它拆分成多個小函數。 ### 5. 刪除掉沒用的變量 在一個函數中,如果某一個定義的變量沒有被用到,請及時刪除它。 ### 6. 定義臨時變量提高可讀性 ``` if student.is_active and (student.sex == 'female'): student.add_tolist() return #把上面的例子變成如下 student_is_eligible = student.is_active and (student.sex == 'female') if student_is_eligible: student.add_tolist() return ``` 需要合理運用臨時定義對象,把不必要的東西賦值成臨時變量反而會讓代碼顯得啰嗦! ## 四、代碼注釋 我們寫的代碼 為了 別人容易看懂, 甚至自己 以后能看懂, 就需要加入一些我們熟悉的**人話**,也就是人類語言,輔助理解。 這些輔助理解的人話,就是注釋。 這些人話可以是任何一種語言,只要方便你看懂代碼就行,中文、英文、法文都可以。 Python的注釋以`#`開頭,后面的內容都是注釋 ``` # info 變量 記錄 作者的信息,包括 名字,身高,體重 info = {'name' :'不知百度知', 'height':'180cm'} # 改變 作者的身高記錄 info['height'] = '175cm' print(info) # 打印身高到屏幕上 ``` 怎么樣,有了上面的注釋,這些代碼是不是更容易讀懂了? > 我們要注意的是,通常注釋是不會對代碼的執行有影響的(除了一些非常特殊的注釋,比如代碼開頭的文件編碼注釋,以后會講) 基本用法: ``` # 單行注釋 # 我又注釋一行 # 我再注釋一行 a = 10 # 行尾注釋 # 下面是多行注釋,適合大段文字 ''' 床前明月光, 疑是地上霜。 舉頭望明月, 低頭思故鄉。 ''' ``` ## 附:The Zen of Python (Python之禪) 最后分享一下 Zen of Python 準則。 > 在交互式解釋器中輸入 import this 就會顯示 Tim Peters 的 The Zen of Python | The Zen of Python, by Tim Peters | Python之禪 by Tim Peters | | ------------------------------------------------------------ | ------------------------------------------------------------ | | Beautiful is better than ugly. | 優美勝于丑陋(Python 以編寫優美的代碼為目標) | | Explicit is better than implicit. | 明了勝于晦澀(優美的代碼應當是明了的,命名規范,風格相似) | | Simple is better than complex. | 簡潔勝于復雜(優美的代碼應當是簡潔的,不要有復雜的內部實現) | | Complex is better than complicated. | 復雜勝于凌亂(如果復雜不可避免,那代碼間也不能有難懂的關系,要保持接口簡潔) | | Flat is better than nested. | 扁平勝于嵌套(優美的代碼應當是扁平的,不能有太多的嵌套) | | Sparse is better than dense. | 間隔勝于緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題) | | Readability counts. | 可讀性很重要(優美的代碼是可讀的) | | Special cases aren't special enough to break the rules.Although practicality beats purity. | 即便假借特例的實用性之名,也不可違背這些規則(這些規則至高無上) | | Errors should never pass silently.Unless explicitly silenced. | 不要包容所有錯誤,除非你確定需要這樣做(精準地捕獲異常,不寫 except:pass 風格的代碼) | | In the face of ambiguity, refuse the temptation to guess. | 當存在多種可能,不要嘗試去猜測 | | There should be one-- and preferably only one --obvious way to do it. | 而是盡量找一種,最好是唯一一種明顯的解決方案(如果不確定,就用窮舉法) | | Although that way may not be obvious at first unless you're Dutch. | 雖然這并不容易,因為你不是 Python 之父(這里的 Dutch 是指 Guido ) | | Now is better than never.Although never is often better than *right* now. | 做也許好過不做,但不假思索就動手還不如不做(動手之前要細思量) | | If the implementation is hard to explain, it's a bad idea.If the implementation is easy to explain, it may be a good idea. | 如果你無法向人描述你的方案,那肯定不是一個好方案;反之亦然(方案測評標準) | | Namespaces are one honking great idea -- let's do more of those! | 命名空間是一種絕妙的理念,我們應當多加利用(倡導與號召) |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看