python學習:python的變量以及編碼的問題,如何格式化輸出?

Python PyCharm Word 幻風的AI之路 2019-04-09

python變量

python學習:python的變量以及編碼的問題,如何格式化輸出?

在python中定義變量的時候,不用申明類型,只用直接寫名字就ok,上面的程序是設置了一個名為name的變量,其值為hello word,然後將其值賦給name1,然後將值輸出,結果為

python學習:python的變量以及編碼的問題,如何格式化輸出?

這裡要注意一點,name賦值給name1,那麼這二者的值現在是一樣的,但是二者沒有其它關係,就是說一個改變不會影響另一個的改變,不是引用關係。

還有一點,在python中沒有常量,但有一種默契就是變量名寫成全大寫,意思就是告訴其它開發者,我把它當成了常量,其他人不要改變。

python值為漢字時的編碼問題

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

這是因為在2.7版本中,如果不指定編碼集,它會默認使用ascii碼去處理,但是ascii中沒有這些對應的編碼,所以會出問題,所以需要指定,而這個問題在3版本就完美結果,因為它默認使用utf-8解決編碼問題。

# -*- coding: utf-8 -*-

使用這個命令寫在第一行,作用就是以後使用utf-8來進行編碼,不要再用ascii來編碼了

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

註釋

單行註釋使用 #被註釋內容

多行註釋使用"""被註釋內容"""

多行註釋使用'''被註釋內容'''

多行註釋,是三個雙引號或者三個單引號

多行註釋,當多行註釋賦值給一個變量的時候,相當於多行的字符串

python學習:python的變量以及編碼的問題,如何格式化輸出?

雖然被註釋了,但是把他賦值給了d,並且輸出,結果為

python學習:python的變量以及編碼的問題,如何格式化輸出?

也就是說多行註釋,在賦值給一個變量的時候就是一個字符串

用戶交互程序

如何獲取用戶輸入的內容

基本格式為

python學習:python的變量以及編碼的問題,如何格式化輸出?

這個程序在運行的時候,會輸出到控制檯age,然後此時我們輸入年齡,然後就賦值給了age,然後他又會輸出www,此時我們再次輸入,輸入的值會複製給www,最後輸出

python學習:python的變量以及編碼的問題,如何格式化輸出?

注意一點這個是2.版本的python所以要是想輸入字符串需要用雙引號給引上,不然會出錯,因為2的input有一個特性就是你給他輸入什麼類型他就是什麼類型,如果把huanfeng沒有用引號給引起來的話,那麼系統會默認huanfeng是一個變量,這樣的結果就是會導致變量未定義異常,而3版本不會,不論你輸出什麼類型他都會來按照string類型來處理,也就是控制檯上輸入數字,其實也是被引號給引起來的,所以我們錄入的數據如果是數字我們要想進行加減乘除,可以使用int()進行強轉

python學習:python的變量以及編碼的問題,如何格式化輸出?

我們可以通過isdigit()方法來判斷控制檯輸入的是否是數字,如果是數字,那麼就強轉成int型,這樣就可以進行增刪該查了。

格式化輸出

python學習:python的變量以及編碼的問題,如何格式化輸出?

上面的格式化輸出結果是

python學習:python的變量以及編碼的問題,如何格式化輸出?

要想實現這個,應該想到剛才介紹的多行註釋,因為它可以把很多行引起來,並且保持原有格式,這裡要使用一個%s來實現這個操作

info="""----person---
age:%s
name:%s
""" %(age,name)

這是一個整體,意思就是說age對應的值為%s,name也對應一個%s,至於這個%s是什麼,則和後面的%(age,name)對象,也就是說第一個%s是age,第二個%s是name,結果輸出之後就是格式化輸出效果了

除了%s,還會有%d,%f之類的,但是要注意3版本會把所有的輸入類型都按照String來處理,所以要想使用%d,就需要將輸入的string類型給強轉成對應的%d,或者%f的類型

python中使用type(變量)可以看出該變量的類型,如果輸入的是11,則也會按照string來處理,然後可以使用int(變量)來將string變量處理成int類型複製給%d,比如

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

這是格式化的一種方式,這種方式就是%s,%d,一一對應,還有一種格式化的方式,和他差不多使用{索引}來定位(索引從0開始),演示:

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

這個是多行字符串.format(索引0值,索引1值)比如上面的程序就是name對應上面的所有{0},age對應上面的所有{1}

以上兩種之所以說類似是因為他們必須準確的對應好,如果一個格式化串有上百個變量,那麼很容易出錯,所以常用方式三

python學習:python的變量以及編碼的問題,如何格式化輸出?

這種方式方式採用的是鍵值對的方式,在info中指定鍵,在設置值的時候採用鍵=值的形式,沒有必要關心前後順序,只要設置好就行,所以這種方式比較好

補充一點單行字符串.format也可以使用,多行字符串.format是為了格式化的輸出

將輸入的數據,密文處理,如輸入密碼

要想完成操作需要import getpass,然後使用的方式是

python學習:python的變量以及編碼的問題,如何格式化輸出?

不用input來操作了,而是通過getpass.getpass來操作,這樣輸入的時候就是密文輸入了,就是不顯示輸入,當然getpass,在pycharm沒法用,這裡就不演示了

if--else

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

要注意python執行嚴格的縮進程序,就是說只要它不是一個語句的子程序,他就應該頂頭寫,如果是,就應該以其父類為標誌縮進寫,python中沒有 else if,它的表示形式是elif

最後補充一點:age=11,則age是int類型

age="11",則age是String類型

而age=input("age"),無論輸入的age是什麼類型,input方式獲取的age都是string類型

所以如果年齡進行大小比較時,要將input輸入的age,強轉成int再來比較大小

if 條件:

pass

pass可以在if while for中用,條件成立,執行pass,pass就是什麼效果都沒有,就是當作一個沒有任何效果的執行體來用

while循環

while循環基本格式

python學習:python的變量以及編碼的問題,如何格式化輸出?

死循環為

while true:

while循環還可以和else搭配使用

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

只要循環條件不成立就執行else,也就是說循環執行完成之後就會執行else,但要注意一點,這個執行完成之後,指的是正常執行完成之後,而不是break強制完成

flag=False

可以while flag:

還可以while not flag:

不可以 while !flag:

for循環

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

這個程序是i是變量隨便定義,rang(10)代表0123456789,每for一次就將0123456789中的一個數賦值給i,然後執行print語句,輸出i

使用for循環控制循環3次

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

for循環也可以和else一起搭配使用

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

for i in rang(3)實際等於for i in rang(0,2,1)這個是從0到2,每次增長1,這個1就是步長,所以就是0,1,2

間隔2來輸出演示

python學習:python的變量以及編碼的問題,如何格式化輸出?

python學習:python的變量以及編碼的問題,如何格式化輸出?

每天分享,歡迎關注

相關推薦

推薦中...