1. 程式人生 > >Python從入門到放棄_運算子與編碼

Python從入門到放棄_運算子與編碼

 

3>4 or 4<3 and 1==1
1 < 2 and 3 < 4 or 1>2 
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

 

 

1.while迴圈

在生活中,我們遇到過迴圈的事情吧?比如迴圈聽歌。在程式中,也是存才的,這就是流程控制語句 while

1、基本迴圈

while 條件:
      
    # 迴圈體
  
    # 如果條件為真,那麼迴圈則執行
    # 如果條件為假,那麼迴圈不執行

  

2、break

break 用於退出當層迴圈

#-*- coding:utf-8 -*-
 
num = 1
while num <6:
    print(num)
    num+=1
    break
    print("end")

  

3、continue

continue 用於退出當前迴圈,繼續下一次迴圈

#!/usr/bin/env python
#-*- coding:utf-8 -*-
  
num = 1
while num <6:
    print(num)
    num+=1
    continue
    print("end")

4、while else

while True:
    if 3 > 2:
        print('你好')
        break
else:
    print('不好')
 
 
while True:
    if 3 > 2:
        print('你好')
print('不好')

  

首先讓使用者輸入序號選擇格式如下:
 
  0.退出
 
  1.開始登入
 
  如果使用者選擇序號0 就提示使用者退出成功
 
  如果使用者選擇序號1就讓使用者輸入使用者名稱密碼然後進行判斷,正確就終止迴圈,錯誤重新輸入
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
使用者可持續輸入(用while迴圈),使用者使用的情況:
 
  輸入A,則顯示走大路回家,然後在讓使用者進一步選擇:
 
  是選擇公交車,還是步行?
 
  選擇公交車,顯示10分鐘到家,並退出整個程式。
 
  選擇步行,顯示20分鐘到家,並退出整個程式。
 
  輸入B,則顯示走小路回家,並退出整個程式。
 
  輸入C,則顯示繞道回家,然後在讓使用者進一步選擇:
 
  是選擇遊戲廳玩會,還是網咖?
 
  選擇遊戲廳,則顯示 ‘一個半小時到家,爸爸在家,拿棍等你。’並讓其重新輸入A,B,C選項。
 
  選擇網咖,則顯示‘兩個小時到家,媽媽已做好了戰鬥準備。’並讓其重新輸入A,B,C選項。

  

答案

 


2.格式化輸出

現在有個需要我們錄入我們身邊好友的資訊,格式如下:

------------ info of MBH----------
             Name  : MBH
             Age   : 22
             job   : Teacher
             Hobbie: 666
    ------------- end ----------------   

 我們現在能想到的辦法就是用一下方法:

name = input('請輸入姓名:')
age = input('請輸入年齡:')
job = input('請輸入職業:')
hobby = input('請輸入愛好:')
a = '------------ info of MBH ----------'
b = 'Name:'
c = 'Age:'
d = 'Job:'
e = 'Hobby:'
f = '------------- end ----------------'
print(a+
      '\n'+
      b+
      name+
      '\n'+
      c+
      age+
      '\n'+
      d+
      job+
      '\n'+
      e+
      hobby+
      '\n'+
      f)
 

 

執行結果

------------ info of MBH----------
Name:meet
Age:18
Job:it
Hobby:3
------------- end ----------------
name = input('請輸入姓名:')
age = input('請輸入年齡:')
job = input('請輸入職業:')
hobby = input('請輸入愛好:')
msg = '''
------------ info MBH----------
Name  : %s
Age   : %s
job   : %s
Hobbie: %s
------------- end ----------------
     
'''
print(msg%(name,age,job,hobby))

  

我們但從程式碼的數量來看,這樣就比那樣的少,看到這裡有細心的老鐵們肯定在想%s這是啥玩意?

% 是一個佔位, 回想下我們小時候給朋友佔位子的場景,是的這個就是佔位.那s又是什麼呢?  s程式碼的字串型別;

具體詳細引數如下,大家可以參考一下

 

%c

轉換成字元(ASCII 碼值,或者長度為一的字串)

%r

優先用repr()函式進行字串轉換

%s

優先用str()函式進行字串轉換

%d / %i

轉成有符號十進位制數

%u

轉成無符號十進位制數

%o

轉成無符號八進位制數

%x / %X

轉成無符號十六進位制數(x / X 代表轉換後的十六進位制字元的大小寫)

%e / %E

轉成科學計數法(e / E控制輸出e / E)

%f / %F

轉成浮點數(小數部分自然截斷)

%g / %G

%e和%f / %E和%F 的簡寫

%%

輸出% (格式化字串裡面包括百分號,那麼必須使用%%)

 
   
   
   
   
   
   
   
   
   
   

 

這樣寫完全沒有問題,但是會不會比較繁瑣呢,有些大佬肯定會想這不都實現了嗎,還逼叨逼什麼啊,那是沒有體驗過格式化輸出有多霸道,我們現在來體驗下霸道的姿勢


3.運算子

 計算機可以進行的運算有很多種,可不只加減乘除這麼簡單,運算按種類可分為算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算,今天我們暫只學習算數運算、比較運算、邏輯運算、賦值運算

算數運算

以下假設變數:a=10,b=20

比較運算

以下假設變數:a=10,b=20

賦值運算

以下假設變數:a=10,b=20

邏輯運算

針對邏輯運算的進一步研究:

  1,在沒有()的情況下not 優先順序高於 and,and優先順序高於or,即優先順序關係為( )>not>and>or,同一優先順序從左往右計算。

 


4.初識編碼(一)

 

python2直譯器在載入 .py 檔案中的程式碼時,會對內容進行編碼(預設ascill),而python3對內容進行編碼的預設為utf-8。

 

ASCII(American Standard Code for Information Interchange,美國標準資訊交換程式碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多隻能用 8 位來表示(一個位元組),即:2**8 = 256,所以,ASCII碼最多隻能表示 256 個符號。

 

 

 

隨著計算機的發展. 以及普及率的提高. 流⾏到歐洲和亞洲. 這時ASCII碼就不合適了. 比如: 中⽂漢字有幾萬個. 而ASCII 多也就256個位置. 所以ASCII不行了. 怎麼辦呢? 這時, 不同的國家就提出了不同的編碼用來適用於各自的語言環境. 比如, 中國的GBK, GB2312, BIG5, ISO-8859-1等等. 這時各個國家都可以使用計算機了. 
GBK, 國標碼佔用2個位元組. 對應ASCII碼 GBK直接相容. 因為計算機底層是用英文寫的. 你不支援英文肯定不行. 而英文已經使用了ASCII碼. 所以GBK要相容ASCII. 
這里GBK國標碼. 前⾯的ASCII碼部分. 由於使⽤兩個位元組. 所以對於ASCII碼⽽言. 前9位都是0

字母A:0100 0001 # ASCII
字母A:0000 0000 0100 0001 # 國標碼

國標碼的弊端:

  只能中國用. 日本就垮了. 所以國標碼不滿足我們的使用. 這時提出了一個萬國碼Unicode一 開始設計是每個字元兩個位元組. 設計完了. 發現我大中國漢字依然無法進行編碼.

  只能進行擴充. 擴充成32位也就是4個字 節. 這回夠了. 但是. 問題來了. 中國字9萬多. 而unicode可以表示40多億. 根本用不了. 太浪費了. 於是乎, 就提出了新的 UTF編碼.可變長度編碼

  Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字元編碼。Unicode 是為了解決傳統的字元編碼方案的侷限而產生的,

  它為每種語言中的每個字元設定了統一併且唯一的二進位制編碼,規定雖有的字元和符號最少由 16 位來表示(2個位元組),即:2 **16 = 65536

  注:此處說的是最少2個位元組,可能更多

  UTF-8,是對Unicode編碼的壓縮和優化,他不再使用最少使用2個位元組,而是將所有的字元和符號進行分類:ascii碼中的內容用1個位元組儲存、

  歐洲的字元用2個位元組儲存,東亞的字元用3個位元組儲存...

  UTF-16: 每個字元最少佔16位.

  GBK: 每個字元佔2個位元組, 16位.

  

單位轉換

 

8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
常⽤到TB就夠了