python學習1

来源:http://www.cnblogs.com/wenchong/archive/2016/08/15/5771948.html
-Advertisement-
Play Games

1、python 簡介 各種網站都有關於 Python 的簡介 Python is powerful... and fast; plays well with others; runs everywhere; is friendly & easy to learn; is Open. 2、pytho ...


1、python 簡介


    各種網站都有關於 Python 的簡介

     Python is powerful... and fast; 

     plays well with others;

     runs everywhere;

     is friendly & easy to learn;

     is Open.

 

2、python 版本區別


    Short version: Python 2.x is legacy, Python 3.x is the present and future of the language

    Python 2.7 是一個相容版本,but Python 2.7 would be supported until 2020

    

    print 用法不同:

# python 2.x
print "Hello World!"
print >>sys.stderr, "fatal error"
# python 3.x
print("Hello World!")
print("fatal error", file=sys.stderr)
(first,*middle,last) = range(10)

    Python 3.x 預設支持 Unicode,Python 2.x 預設支持 ASCII

    Python 2.x 需要支持中文時:

# /usr/bin/env python
# -*- coding: utf-8 -*-
print "您好!"

    Python 3.x 預設支持中文:

# /usr/bin/env python
print("您好!")

    Python 3.x 某些庫的名稱變更

Old Name

New Name

_winreg

winreg

ConfigParser

configparser

copy_reg

copyreg

Queue

queue

SocketServer

socketserver

markupbase

_markupbase

repr

reprlib

test.test_support

test.support

    so,後面的學習選擇 python 3.x 版本

 

3、安裝


 

  • Windows 下安裝

    • 下載安裝包

      https://www.python.org/downloads/

    • 安裝

      預設安裝路徑: C:\Program Files\Python35

    • 添加環境變數

      右鍵電腦 --> 屬性 --> 高級系統設置 --> 高級 --> 環境變數 --> path --> 添加路徑

          如:添加 ;C:\Program Files\Python35;C:\Program Files\Python35\Scripts

  • Linux  下安裝

    • 下載安裝包

        Python-3.5.2.tgz

    • 安裝
root@localhost tmp]# tar zxf Python-3.5.2.tgz
[root@localhost tmp]# cd Python-3.5.2
# 預設安裝在 /usr/loca/ 目錄下
[root@localhost Python-3.5.2]# ./configure 
[root@localhost Python-3.5.2]# make && make install
[root@localhost Python-3.5.2]# python3.5
Python 3.5.2 (default, Aug 13 2016, 19:07:36) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

 

4、第一個程式


  在 Linux 的目錄中創建 hello.py 文件,並賦予許可權

[root@localhost learning]# cat hello.py 
#!/usr/bin/env python
print("Hello World!")

[root@localhost learning]# chmod +x hello.py 
[root@localhost learning]# ./hello.py 
Hello World!

  也可以在解釋器中執行

[root@localhost learning]# python
Python 3.5.2 (default, Aug 13 2016, 19:07:36) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World!")
Hello World!
>>>

 

5、變數


 

    Variables are used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so our programs can be understood more clearly by the reader and ourselves. It is helpful to think of variables as containers that hold information. Their sole purpose is to label and store data in memory. This data can then be used throughout your program.

  • 變數命名的規則

    • 變數名只能是大小寫字母,數字以及下劃線的組合

    • 變數名不能以數字開頭

    • 變數名不能為以下關鍵字

      ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

 

  • 變數的聲明與賦值

    聲明一個變數名為 name,變數 name 的值為 wenchong

>>> name = "wenchong"
>>> print(name)
wenchong
>>> 
# 當變數 name1 賦值為 name 時,是將變數 name 的值(即記憶體中的值)賦值給 name1,當 name 再次變化時,不會影響 name1 的值
>>> name1 = name
>>> id(name)
139659587567344
>>> id(name1)
139659587567344
>>> name = "Jack"
>>> id(name)
139659587549592
>>> id(name1)
139659587567344
>>> print(name,name1)
Jack wenchong

 

6、用戶輸入


 

1 #!/usr/bin/env python
2 # Get User Input String
3 name = input("Please Input Name:")
4 """
5 Python 2.x
6 name =  raw_input("Please Input Name:")
7 """
8 print(name)

    第1行:指定解釋器

    第2行:單行註釋

    第3-7行:多行註釋

    第8行:輸入用戶輸入的內容

 

    當輸入密碼時,希望輸入的密碼不可見,該模塊在 windows 的 pycharm 中不生效

#!/usr/bin/env python

import getpass

passwd = getpass.getpass("Please Input Passwd: ")
print(passwd)
[root@localhost learning]# python hello.py 
Please Input Passwd: 
password
[root@localhost learning]# 

 

7、模塊


     在捕獲輸入密碼的 python 程式中,其中一行為 import getpass,即為導入模塊

  • os 模塊

      os.mkdir()         創建目錄

      os.system()       執行系統命令,命令結果無法賦值給變數,只能講返回碼賦值給變數

      os.popen()        執行系統命令,命令結果可以賦值給變數

# 導入模塊 os
>>> import os
>>> os.mkdir("testDir")
>>> os.system("ls -l")
total 4
-rwxr-xr-x 1 root root 238 Aug 13 20:17 hello.py
drwxr-xr-x 2 root root   6 Aug 13 20:23 testDir
0
>>> command_res = os.system("ls -l")
total 4
-rwxr-xr-x 1 root root 238 Aug 13 20:17 hello.py
drwxr-xr-x 2 root root   6 Aug 13 20:23 testDir
>>> print(command_res)
0
>>> command_res = os.popen("ls -l").read()
>>> print(command_res)                    
total 4
-rwxr-xr-x 1 root root 238 Aug 13 20:17 hello.py
drwxr-xr-x 2 root root   6 Aug 13 20:23 testDir 
  • sys 模塊

    sys.path  python 解釋器查找模塊的路徑列表

>>> import sys
>>> print(sys.path)
['', '/usr/local/lib/python35.zip', '/usr/local/lib/python3.5', '/usr/local/lib/python3.5/plat-linux', '/usr/local/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/site-packages']
>>>
  • 編寫模塊

    python 的所有文件都可以當做模塊使用

[root@localhost learning]# cat mymodel.py 
#!/usr/bin/env python
myname = "Test Model"

[root@localhost learning]# python
Python 3.5.2 (default, Aug 13 2016, 19:07:36) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mymodel
>>> print(mymodel.myname)
Test Model
>>>

 

8、流程式控制制


 

  •     場景1:用戶密碼驗證

#!/usr/bin/env python
import getpass
username = "wenchong"
passwprd = "pwd123"
input_username = input("請輸入用戶名: ")
input_password = getpass.getpass("請輸入密碼: ")
if username == input_username and password == input_password:
    print("歡迎登陸到天堂...")
else:
    print("無效的用戶名或密碼")
  •     場景2:猜數字小游戲

#!/usr/bin/env python
number = 20
input_num = int( input("請猜一個數字: ") )
if input_num == number:
    print("恭喜您,猜對了")
elif input_num > number:
    print("請猜一個更小的數字")
else:
    print("請猜一個更大的數字")

 

9、迴圈


 

  •     場景1:

    之前猜數字的小游戲猜一次之後程式就會自動退出,那麼有什麼辦法可以猜一次之後繼續猜測,直到猜測正確

#!/usr/bin/env python
number = 20
for i in range(10):
    input_num = int(input("請猜一個數字: "))
    if input_num == number:
        print("恭喜您,猜對了")
        # 如果猜對了,則退出整個迴圈
        break
    elif input_num > number:
        print("請猜一個更小的數字")
    else:
        print("請猜一個更大的數字"
  •     場景2:

    當猜測三個之後,程式會提示是否仍然要繼續

#!/usr/bin/env python
number = 20
# 定義一個計數器變數
count = 0 
for i in range(10):
    # 當計數器的值大於2時,提示是否繼續,如果選擇繼續,則將計數器重置為0,否則退出整個迴圈
    if count > 2:
        user_input = input("請問是否仍然要繼續?(y/n): ")
        if user_input == "y":
            count = 0
            continue
        else:
             break
    input_num = int(input("請猜一個數字: "))
    if input_num == number:
        print("恭喜您,猜對了")
        break
    elif input_num > number:
        print("請猜一個更小的數字")
    else:
        print("請猜一個更大的數字")
    # 迴圈執行一次,即猜測一次數字,計數器加1
    # count += 1 等價於 count = count + 1
    count += 1

 


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

-Advertisement-
Play Games
更多相關文章
  • 2016.6.27 微軟已經正式發佈了.NET Core 1.0 RTM,但是工具鏈還是預覽版,同樣的大量的開源測試庫也都是至少發佈了Alpha測試版支持.NET Core, 這篇文章 The State of .Net Core Testing Today 就將各個開源測試庫的目前進展進行了彙總。 ...
  • 物理文件是我們最常用到的原始配置的載體,最佳的配置文件格式主要由三種,它們分別是JSON、XML和INI,對應的配置源類型分別是JsonConfigurationSource、XmlConfigurationSource和IniConfigurationSource。但是對於.NET Core的配置... ...
  • 最近由於項目需要,在系統緩存服務部分上了redis,終於有機會在實際開發中玩一下,之前都是自己隨便看看寫寫,很零碎也沒沉澱下來什麼,這次算是一個系統學習和實踐過程的總結。 和Redis有關的基礎知識 Redis是一個開源的分散式NoSql資料庫,可以用來做緩存服務、消息隊列、數據存儲等等,數據類型之 ...
  • 本文鏈接: 一些廢話 一門語言火不火,與語言本身並沒太大關係,主要看語言的推廣。 推廣得好,用的人多,問題也能及時得到解決,用的人就越多,這是一個良性迴圈,即使語言本身有很多不足也很快能得到解決。 但有的語言本身很好,使用者卻不多,缺少交流和推廣,致使進入惡性迴圈。 "《黑客與畫家》" 作者把Lis ...
  • Lambda表達式也是C#3.0中最重要的特性之一。 1、Lambda表達式的簡介 Lambda表達式可以理解為一個匿名方法,它可以包含表達式和語句,並且用於創建委托或轉換為表達式樹。在使用Lambda表達式時,都會使用“=>”運算符,該運算符的左邊是匿名方法的輸入參數,右邊則是表達式或語句塊。 1 ...
  • java語言規範,jls,java language specifications ...
  • 1、Python環境配置: Python官網:https://www.python.org/ Pycharm官網 http://www.jetbrains.com/pycharm/download 下載好之後安裝,註意勾選環境變數。 2、寫python一定要註意代碼的縮進。 2、字元串: (1)、字 ...
  • Cron表達式是一個字元串,字元串以5或6個空格隔開,分為6或7個域,每一個域代表一個含義,Cron有如下兩種語法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year或 Seconds Minutes Hours DayofMonth M ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...