python之路———第一章

来源:http://www.cnblogs.com/pizhiyou/archive/2016/08/08/5747883.html
-Advertisement-
Play Games

初識python #以下的代碼都是在PyCharm 4.5的編輯工具下執行的,並且python的版本是3.4 python的第一程式 print("Hello Word") #Hello Word 一、變數名 一)作用:一是用來存儲,二是用來調用 二)定義規則: 1)變數名只能是字母、數字、下劃線的 ...


初識python

#以下的代碼都是在PyCharm 4.5的編輯工具下執行的,並且python的版本是3.4

  python的第一程式

    print("Hello Word")

    #Hello Word

一、變數名

  一)作用:一是用來存儲,二是用來調用

  二)定義規則:

    1)變數名只能是字母、數字、下劃線的任意組合

    2)變數名的第一字母不能是數字或下劃線

    3)關鍵字不能聲明變數 比如:if、for、 class  

  三)變數的賦值

    name = "xiao ming"

    上述代碼聲明瞭一個變數,變數名是 name, 變數 name 的值為:"xiao ming"

二、常用的數據類型

  1、數字

    int(整型):跟數學中數字的沒區別

    long(長整型):int類型中表達不了的數字就用這個

    float(浮點型):有小數點的數字

  2、布爾值

    True  真 或 1

    False  假 或 0

  3、字元串

    1)字元串格式化輸出

      name = "小明"

      print ("I am %s" %name)

      #輸出:I am 小明

    2)字元串拼接

      name = "小明"

      print ("我是"+ name +"的同學")

      #輸出:我是小明的同學

      萬惡的字元串拼接:python中的字元串在C語言中體現為是一個字元數組,每次創建字元串是時候需要在記憶體中開闢一塊連續的空間,並且一旦需要修改字元串的話,就需要再次開闢空間,萬惡的+號每出現一次就會在記憶體中重新開闢一塊空間,所以為了減少記憶體空間的使用,一般情況下都不要用字元串拼接。

    3)字元串常用功能

        name = "xiao ming ,xiao gou,{hua}"

      * 移除空白: name.strip()  #把前後的空格或換行都去掉

      * 分割:   name.split(",")  #按逗號把字元串里的字元分割開來變成列表

            "|".join(name)  #按|把分割開來的列表合在一起

      * 長度:  len(name) #

      * 索引:name.find()  #查找字元串中的某個元素,返回值就是該元素的索引

      * 切片:跟列表切片是一樣的

      *格式化:name.format(hua = "花")

      *判斷:  name.isdigit()  #判斷字元串是不是數字

           name.isalnum()  #判斷字元串有沒有特殊字元

           name.endswith()  # 判斷字元串以什麼結尾
           name.startswith() #判斷字元串以什麼開頭

           name.upper()    #把字元串都改成大寫

           name.lower()     #把字元串都改成小寫

           "" in name #判斷裡面有沒有空格

  4、列表

    1)創建列表:

      name = ["小明","xiaohua",36,"5",[3,4,9],"小狗",96,63,5,36,]

    2)基本操作

      索引:name[0]#取第一個值  name[:2]#取前面兩個值  name[-3:]#取最後三個值  name[4][1] #取第二層列表裡的值

          #每個列表中的元素都對應一個索引,也稱下標,下標預設都是從0開始,例如下標0對應的就是第一個元素"小明"

      切片:name[1:4]#取出第二個到第四個的值 xiaohua,36,5

 

      追加:name.append("小花")#在列表中追加一個新的元素

      刪除:name.remove("小狗")#刪除一個元素 ,但一次只能刪除一個

         name.pop(7) #刪除第7個人 這個是刪除元素的下標,預設是刪除最後一個

         # del name[4] del 刪除一個記憶體中的數據,不但可以刪列表,還可以刪很多 ,是python 的全局功能,

      步長:name[::2] #隔一個人列印一個人,2就是步長,預設是1,但不能是0

      長度:len(name) #查看列表裡有多少元素

      插入:name.insert(2,"小紅")#在第三的位置上插入新的元素,但一次只能插入一個

      清空:name.clear() #把這個列表清空

      擴展:name.extend(name2) # 把name2列表的元素追加到了name列表,但name2列表的元素還存在,相當於拷貝了月份

      排序:name.reverse() #把列表裡面的元素與之前的順序倒過來(從後面往前排)

      拷貝name4 = name.copy() #把一個列表的元素拷貝到另一個列表裡,預設只拷貝第一層,屬於淺拷貝

         name5 = copy.deepcopy(name) #深層拷貝,首先要聲明一個標準庫:import copy

        36 in name #判斷列表是否存在一個元素,如果有則返回True,沒有則返回False

        name.count() #查找列表裡相同的元素有幾個

        # geshu = name.count(36)   輸出結果是 2 說明列表裡有2個36

        name.index() #查找某個元素的索引,如果有相同的元素,只能查找到排在最前面的一個        

      for i in range(name.count(36)): #查找列表裡有幾個36
        
suoyin = name.index(36)  #查找元素36的索引
        
name[suoyin] = 666   #通過查到的索引來修改元素
      
print(name)       #最後的結果把列表裡的所有36改成了666

  5、元組(不可變列表)

    1、創建元組:

      ages = (11,22,33,44,55,66) 或 ages = tupe((11,22,33,44,55,66))

6、字典(無序)

id_xinxi = {
19891019:{
"name":"ypp",
"age" : 23,
"addr":"guangdong"
},
19900316:{
"name":"xiaoming",
"age" : 20,
"addr":"guangxi"
},
20160808:{
"name":"狗蛋",
"age" : 15,
"addr":"hunan"
}
}
print(id_xinxi[20160808]) #取值
id_xinxi[20160808]["addr"] = "湖南" # 改值
id_xinxi[20160808]["qq"] = 123654 #追加一個值
del id_xinxi[20160808]["age"] #刪除一個值
#id_xinxi[20160808].pop("age") 這也是刪除的方法
id_xinxi.get() #獲取字典里某個key的值
id_xinxi.items()#把一個字典變成一個元組,不要用!
id_xinxi.keys() #獲取一個字典里的所有key值
id_xinxi.values() #獲取一個字典里的所有value值
id_xinxi.update() #用新字典裡面的值覆蓋掉就字典里的值
20160808 in id_xinxi #判斷一個字典里有沒有某個key值
id_xinxi.setdefault() #獲取一個key,如果不存在,就會預設添加進去

    1)字典的迴圈

      for key in id_xinxi:     #效率高

        print(key,id_xinxi[key])

三、數據運算

  一)算數運算

   a = 10        b = 20

運算符 描述 實例
+ 加—— 兩個對象相加 a + b  輸出結果  30
- 減—— 一個數減去另一個數 a - b   輸出結果  -10
* 乘—— 兩個數相乘或是返回一個被重覆若幹的字元串 a * b   輸出結果  200
/ 除—— b 除以 a b / a   輸出結果   2
% 取模—— 返回除法的餘數 b / a   輸出結果   0           10 /  3   輸出結果   1
** 冪 —— 返回 b 的 a 次冪 b ** a   輸出結果  10240000000000
// 取整除—— 返回商的整數部分 9 // 2   輸出結果  4     9.0 // 2.0    輸出結果是 4.0

  

 

 

 

 

 

 

 

  

 

  二)比較運算:

運算符 描述 實例
== 等於—— 比較對象是否相等 (a == b) 返回  False
!= 不等於—— 比較兩個對象是否不相等 (a != b) 返回   True
<> 不等於—— 比較兩個對象是否不相等 (a <> b) 返回  True
> 大於—— 返回X是否大於Y (a > b) 返回    False
<

小於—— 返回X是否小於Y。 所有比較運算符返回1表示真,返回0表示假。

這分別與特殊的變數True和False等價。註意,這些變數名的大寫

(a < b) 返回    True
>= 大於等於—— 返回X是否大於等於Y (a >= b) 返回  False
<= 小於等於——返回X是否小於等於Y (a <= b) 返回  True

  

 

 

 

 

 

 

 

  

 

  三)賦值運算 

 運算符

描述

示例

=

賦值 - 將右邊的值賦值給左邊的變數名

c = a + b 將會把a+b的結果賦值給c

+=

自加賦值 - 將+=號左邊的值與+=號右邊的值相加,然後再把結果賦值給+=號左右的值

c += a相當於 c = c + a

-=

自減賦值

c -= a相當於 c = c - a

*=

自乘賦值

c *= a 相當於 c = c * a

/=

自除賦值

c /= a 相當於 c = c / a

%=

自取模賦值

c %= a 相當於 c = c % a

**=

自求冪賦值

c **= a 相當於 c = c ** a

//=

自取整賦值

c //= a 相當於 c = c // a

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

  四)邏輯運算符  

運算符 描述 實例
and 布爾  “與” ——如果X為False, X  and  Y  返回 False , 否則它返回 Y 的計算值 (a and b) 返回 True
or 布爾  “或” ——如果X為True, X  and  Y  返回 True , 否則它返回 Y 的計算值 (a or b) 返回 True
not 布爾 “非” ——如果X為True, X and  Y 返回 False , 如果 X 為 False, 它返回 True not(a and b) 返回 False

 

 

 

 

 

  

  五)身份運算  

運算符 描述 實例
is is是判斷兩個標識符是不是引用自一個對象 X is Y ,如果id(X)等於id(Y),is 返回結果 1

 print(type("333") is str)  返回True

  print(type(333) is str)    返回False    

 六)位運算
  
電腦中能表示的最小單位,是一個二進位位
   電腦中能
存儲的最小單位,是一個二進位位(bit)
   8bit  = byte(1位元組)
   1024byte = 1kbyte
1024kbyte = 1mbyte
   1024mbyte = 1gb
   1024gb = 1T


 運算符

描述  a = 60  b = 13

示例

&

與運算,這個二進位位必須在2組數中都為真,結果才返回真

(a & b)得12,二進位位: 0000 1100

|

或運算,這個二進位位只需在其中一組數據中為真即返回真

(a | b)得 61,二進位位: 0011 1101

^

異或運算,只要這個二進位位在兩組數據中不相同就返回真

(a ^ b)得 49 ,二進位位: 0011 0001

<< 

左移運算,將a整體向左移2位

a << 2得240,二進位位: 1111 0000

>> 

右移運算,將a整體向右移3位

a >> 3得 7 ,二進位位: 0000 0111








 

 

 

四、表達式:

  一)if...else語句

    name = "小明"
    passwd = 123654
    username = input("請輸入用戶名:")
    password = int(input("請輸入用戶名密碼:"))

    if name == username and passwd == password:

       print("恭喜你登入成功!")
    else:
    print("用戶名或密碼錯誤,請重新輸入!")
  二)for迴圈
    #計算1+2+...+10的和
    sum = 0
    for x in [1,2,3,4,5,6,7,8,9,10]:
    sum = sum + x
    print(sum)

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

-Advertisement-
Play Games
更多相關文章
  • 詳細的見 https://github.com/linux-wang/DRF_tutorial/blob/master/README.md DRF中有一個serializer的概念,實現的功能是將各種Django Queryset和model instance轉換成Python原生格式,這裡就省去了 ...
  • 實力運行效果如下 ...
  • String類和StringBuffer類主要用來處理字元串,這兩個類提供了很多字元串的使用處理方法。String類是不可變類,表示對象所包含的字元串類不能改變。StringBuffer類是可變類,其對象所包含的字元串內容可以被添加或修改。 關於這兩個類處理字元串的常用方法請參考:http://ww ...
  • SpEL簡介與功能特性 Spring表達式語言(簡稱SpEL)是一個支持查詢併在運行時操縱一個對象圖的功能強大的表達式語言。SpEL語言的語法類似於統一EL,但提供了更多的功能,最主要的是顯式方法調用和基本字元串模板函數。 同很多可用的Java 表達式語言相比,例如OGNL,MVEL和JBoss E ...
  • 一、本來想說的是返回值處理問題,但在 SpringMVC 中,返回值處理問題的核心就是視圖渲染。所以這裡標題叫視圖渲染問題。 本來想在上一篇文章中對視圖解析進行說明的,但是通過源碼發現,它應該算到視圖渲染中,所以在這篇文章中進行說明。 org.springframework.web.servlet. ...
  • java API(Java Application Interface)是java的應用編程介面。它提供給java編程人員使用的程式介面,是java語言提供的已經實現的標準類的集合。Java API類庫與win32 中的dll文件有點像,封裝了很多函數,不提供具體的實體,只提供了方法名和參數等信息。 ...
  • 數組是程式的基本數據結構,數組操作是常用操作,Arrays類封裝了數組的一些常見操作,它有哪些方法?是怎麼實現的?多維數組是怎麼回事?排序方法的介面體現了怎樣的設計思維?Java是如何實現排序的?Arrays中的方法不夠用怎麼辦?... ...
  • 一、簡介 Tornado 是 FriendFeed 使用的可擴展的非阻塞式 web 伺服器及其相關工具的開源版本。這個 Web 框架看起來有些像web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式伺服器環境,這個 Web 框架還包含了一些相關有用工具及優化。 Tornado ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...