Python 學習第二章

来源:https://www.cnblogs.com/xp0919/archive/2018/08/17/9486613.html
-Advertisement-
Play Games

本章內容 一、數據類型 在記憶體中存儲的數據可以有多種類型。 在 Python 有五個標準的數據類型 數字 Python 支持四種不同的數字類型 int (有符號整數) long (長整型) float (浮點型) complex (複數) 字元串 字元串或串(String)是由數字、字母、下劃線組成 ...


本章內容

  1. 數據類型
  2. 數據運算
  3. 表達式 if ...else 語句
  4. 表達式 for 迴圈
  5. 表達式 while 迴圈

一、數據類型

   在記憶體中存儲的數據可以有多種類型。

   在 Python 有五個標準的數據類型

  1. Numbers (數字)
  2. String (字元串)
  3. List (列表)
  4. Tuple (元組)
  5. Dictionnary (字典)

數字

  Python 支持四種不同的數字類型

  • int (有符號整數)
  • long (長整型)
  • float (浮點型)
  • complex (複數)

字元串

  字元串或串(String)是由數字、字母、下劃線組成的一串字元。

print("我愛你,我的國!")

  這裡說一下字元串拼接,在第一章的時候最後一張圖顯示出字元串拼接。這裡我們演示一下怎麼用,先看個簡單的程式如下:

#班裡面有10人,來了5人,現在有多少人?
student_number=10
come_number=5
new_number=student_number+come_number
print("班級現有",new_number,"") # 沒用字元串拼接
#班裡面有10人,來了5人,現在有多少人?
student_number=10
come_number=5
new_number=student_number+come_number
print("班級現有"+str(new_number)+"")  #採用字元串拼接

  這裡面new_number 數據類型是 int 類型,要通過 str() 轉換成字元串(詳見第一章介紹)。然後通過 + 號進行拼接

列表

  List(列表) 是 Python 中使用最頻繁的數據類型。

  基本操作:

    • 索引
    • 切片
    • 追加
    • 刪除
    • 長度
    • 切片
    • 迴圈
    • 包含
a = ["1","2","3","4"]
b = a[1]
c = a[0]
d = a[1:3]      #提取列表中 a[1]和a[2] 用到切片功能,後面在詳細的學
print(b)    #b = 2
print(c)
print(d)      #d = ["2","3"]

元組

  元組是另一個數據類型,類似於List(列表)。

  元組用"()"標識。內部元素用逗號隔開。但是元組不能二次賦值,相當於只讀列表。

  創建元組

age=(11,12,13,43,33,23)
print(age)

 字典

  字典(dictionary)是除列表以外python之中最靈活的內置數據結構類型。列表是有序的對象集合,字典是無序的對象集合。

  兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。

  字典用"{ }"標識。字典由索引(key)和它對應的值value組成。

person={"name":"xp","age":24}
print(person)

更多內容:猛戳這裡

二、數據運算

  根據這幾天學的和查閱資料,整理出以下幾種數據運算,當然有些我自己還沒練習,先整理出來,後面用到再重點介紹。

 算術運算

運算符 描述 實例
+ 加——兩個數相加 a=1  b=2    a+b 輸出結果為 3    
- 減——兩個數相減 a=4  b=2    a-b 輸出結果為 2 
* 乘——兩個數相乘 a=1  b=2    a*b 輸出結果為 2 
/ 除——兩個數相除 a=4  b=2    a/b 輸出結果為 2
% 取模——返回除法的餘數 a=5  b=2    a%b 輸出結果為 1
// 整除——返回商的整數部分 a=5  b=2    a//b 輸出結果為 2
** 冪——返回x的y次冪 a=5  b=2    a**b 輸出結果為 25

比較運算

運算符 描述 實例
== 等於——比較對象是否相等 a=1  b=2  a==b 返回false
!= 不等於——比較兩個對象是否不相等 a=1  b=2  a==b 返回True
> 大於——比較兩個對象誰大 a=1  b=2  a>b 返回false
< 小於——比較兩個對象誰小 a=1  b=2  a<b 返回ture
>= 大於等於——比較兩個對象的關係 a=1  b=2  a>=b 返回false
<= 小於等於——比較兩個對象的關係 a=1  b=2  a<=b 返回false

邏輯運算符

運算符 描述 實例
and a=false  b=ture   a and b =false
or a=false  b=ture   a or b =ture
not a=false  b=ture   nat(a and b) =ture

邏輯運算符真值表

  and 真值表

and

1

0

1

1

0

0

0

0

  or 真值表

or

1

0

1

1

1

0

1

0

not 真值表

 

not

1

0

0

1

賦值運算符

運算符 描述 實例
= 簡單的賦值運算符 a=3 b=a   b 的輸出結果為 3
+=  加法賦值運算符 a=3  c=1  a+=c   a 的輸出結果為 4     等價於a=a+c
-=  減法賦值運算符 a=3  c=1  a-=c   a 的輸出結果為 2     等價於a=a-c
*=  乘法賦值運算符 a=3  c=2  a*=c   a 的輸出結果為 6     等價於a=a*c
/=  除法賦值運算符 a=4  c=2  a/=c   a 的輸出結果為 2     等價於a=a/c
%=  取模賦值運算符 a=9  b=5  a%=b  a 的輸出結果為 4    等價於a=a%b
//=  整除賦值運算符 a=49  b=5  a//=b  a 的輸出結果為 9    等價於a=a//b
**=  冪賦值運算符 a=2  b=3  a**=b  a 的輸出結果為 8    等價於a=a**b

 位運算

運算符 描述 實例
& 按位 與 運算符 a=11  b=2   (a&b)=2     二進位:0000 0010
| 按位 或 運算符 a=11  b=2   (a|b)=11    二進位:0000 1011
^ 按位 異或 運算符 a=11  b=2   (a^b)=9     二進位:0000 1001   (取不相同的位)
~ 按位 取反 運算符 a=11   (~a)=-12     二進位:1000 1100
<< 左移動運算符 a=11  (<<a) =22    二進位:0001 0110
>> 右移動運算符 a=11  (<<a) =5     二進位:1000 0101

  註意:按位 午飯運算符,高位為1符號位為1為負數,負數在電腦以反碼形式存儲,反碼 = 二進位取反(符號位不變)+1。所以 a = 11 二進位位:0000 1011

取反後為:1111 0100  ——> 1111 0100-1 = 1111 0011 ——> 取反: 1000 1100 = -12

  問題:a = 11 c=a>>1  那麼 a 的最低位移到高位上,後面的一次向右挪一位,那麼高位上位1,為什麼不是負數呢?結果卻是5, 二進位位: 1000 0101

運算符優先順序

運算符描述
** 指數 (最高優先順序)
~ + - 按位翻轉, 一元加號和減號 (最後兩個的方法名為 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法減法
>> << 右移,左移運算符
& 位 'AND'
^ | 位運算符
<= < > >= 比較運算符
<> == != 等於運算符
= %= /= //= -= += *= **= 賦值運算符
is is not 身份運算符
in not in 成員運算符
not and or 邏輯運算符


更多內容:
猛戳這裡

三、表達式 if ...else 語句

 縮進:縮進級別必須保持一致

  Tab 鍵 != 4個空格

  IndentationError: expected an indented block  語法錯誤

實例一:猜數字

1 ge_of_princal = 56   
2 guess_age = int(input(">>:"))
3 if guess_age == age_of_princal:
4     print("yes")
5 elif guess_age > age_of_princal:
6     print("太大了,往小的猜")
7 else:
8     print("太小了,往大的猜")

 實例二:成績等級劃分

 1 score = int(input("score:"))
 2 
 3 if score > 90:
 4     print("A")
 5 elif score > 80:
 6     print("B")
 7 elif score > 70:
 8     print("C")
 9 elif score > 50:
10     print("D")
11 else:
12     print("退學吧")

實例三:比較大小

 1 #比較三個數的大小
 2 
 3 max_number = 0
 4 number1 = int(input("number1="))
 5 number2 = int(input("number2="))
 6 number3 = int(input("number3="))
 7 if number1 > number2:
 8     max_number = number1
 9     if max_number > number3:
10         print("最大值為:",max_number)
11     else:
12         max_number = number3
13         print("最大值為:",max_number)
14 else:
15     max_number = number2
16     if max_number > number3:
17         print("最大值為:",max_number)
18     else:
19         max_number = number3
20         print("最大值為:",max_number)

四、表達式 for 迴圈

   for x in ...:

name=['xp','qa','ws','ed']
x=0
for x in name:
    print(x)

  執行這段代碼,會依次列印 name 的每個元素

xp
qa
ws
ed

  比如我們想計算1-100的整數之和,從1寫到100有點困難,利用 Python 提供的 range() 函數,可以生成一個整數序列,再通過 list() 函數轉換成 list 。

sum=0
x=1
for x in range(101):    # range() 函數生成(0,100)整數序列
    sum=sum+x          #這裡一定要註意縮進
    print(sum)

   range() 函數 可以生成一個整數序列,通過 list() 函數轉換成 list (列表)

  比如:生成一個數列 [0,1,2,3,4]

list_number=list(range(5))
print(list_number)

  代碼列印結果:

[0,1,2,3,4]

五、表達式 while 迴圈

   實例:編寫一個登陸介面,輸入用戶名和密碼,認證成功後顯示歡迎信息;輸錯三次後程式退出,不能再輸入密碼。

 1 n = 3
 2 pass_name = "123456"
 3 name = input("請輸入用戶名:")
 4 while n>0:
 5     password=input("請輸入用戶名密碼:")
 6     if password==pass_name:
 7         print("歡迎進入....")
 8         n=0
 9     else:
10         print("密碼輸入錯誤")
11         n=n-1
12         if n==0:
13             print("該用戶名被鎖定")
14         else:
15             print("密碼輸入錯誤,還有",n,"次機會")

  實例列印1~100之間的偶數部分

1 #列印1~100之內的偶數部分
2 even_number = 1
3 while even_number <= 100:
4     even_number +=1
5     if even_number % 2 == 0:
6         print(even_number)
View Code

  未完待續........

  有什麼不對的地方請大家多多指教,相互交流學習。儘量將自己學會的通過博客給大家展示出來,也希望大家不要著急。

大家也可以關註我的博客與我互動學習、交流。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 主要思路參考這篇博客的內容,把地址貼上: http://www.cnblogs.com/zhoujie/p/python18.html 下麵貼上我自己的代碼 讀取excel數據的demo代碼如下: 1 def read_excel_demo(): 2 # 打開文件 3 workbook = xlrd ...
  • const的用法,特別是用在函數後面 在普通的非 const成員函數中,this的類型是一個指向類類型的 const指針。可以改變this所指向的值,但不能改變 this所保存的地址。 在 const成員函數中,this的類型是一個指向 const類類型對象的 const指針。既不能改變 this所... ...
  • 常用排序 名稱 複雜度 說明 備註 冒泡排序Bubble Sort O(N*N) 將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上浮 插入排序 Insertion sort O(N*N) 逐一取出元素,在已經排序的元素序列中從後向前掃描,放到適當的位置 起初,已經排序的元素序列為 ...
  • 首先確定要爬取的笑話網站,我是直接百度笑話搜到的第一個網站,網址是http://www.jokeji.cn/,點進去發現網頁構建在我看來還是比較複雜的,由於還是初學者,首先得先找到網頁資源集中所在,找出其中的規律,然後才好有針對性的爬取資源。對於這個網址,我發現在左邊側欄有一個笑話大全的分類框。這個 ...
  • 基礎內容請自行谷歌..廢話不多說,直接上乾貨!! “ 代碼 一 ”: 1 import sys, locale 2 3 s = "小甲" 4 print(s) 5 print(type(s)) 6 print(sys.getdefaultencoding()) 7 print(locale.getd ...
  • 14.wx.showToast交互反饋 "wx.showToast文檔" post detail.js添加個消息提示框 效果 15.音樂播放功能 "音樂播放API文檔" 在posts data.js裡面給每篇文章添加一個music屬性 post detail.wxml 沒播放音樂就顯示文章圖片,播放 ...
  • 回顧: ACID:DBMS在寫入或更新資料的過程中,為保證事務正確可靠,具有的四個特性:原子性(不可分割性)、一致性、隔離性(獨立性)、持久性 一個事務:一系列資料庫操作組成的一個完整的邏輯過程 原子性:一個事務中的所有操作,要麼全部完成、要麼全部不完成,若發生錯誤,回滾(RollBack) 一致性 ...
  • 1.split:切割 使用split不會返回被切割的字元 結果為:['', 'as', 'asf', 'asf', 'a'] 要想返回被切割的數字,需要在正則表達式前後加( ) 結果為:['', '5', 'as', '46', 'asf', '46', 'asf', '46', 'a'] 2.分組 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...