python基礎第一課

来源:http://www.cnblogs.com/gaosy-math/archive/2017/08/11/7342680.html
-Advertisement-
Play Games

一 python第一個程式 二 變數 2.1 變數名稱規則 變數名只能是 字母、數字或下劃線的任意組合 變數名的第一個字元不能是數字 以下關鍵字不能聲明為變數名 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', ' ...


一  python第一個程式

print('hello world!')   # python3.x
 
print 'hello world!'   # python2.x

 

二  變數

2.1  變數名稱規則

  • 變數名只能是 字母、數字或下劃線的任意組合
  • 變數名的第一個字元不能是數字
  • 以下關鍵字不能聲明為變數名

['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']

 

2.2 案例

_name = 'sam'   # 正確
1name = 'yang'  #  錯誤
name_it_1 = 'yuyu'  # 正確

 

2.3  代碼案例

#!/usr/bin/env python3
# encoding: utf-8
# Author: Sam Gao


# print("Hello world")

name = "Sam Gao"   #  name -----> "Sam Gao" 
name2 = name   #  name -----> "Sam Gao"   and   name2 -----> "Sam Gao" 

print('My name is', name, name2)   # 輸出: My name is Sam Gao Sam Gao

name = 'pao che ge'  #   name -----> "pao che ge" and name2 -----> "Sam Gao" 

print(name, name2)   # 輸出:  pao che ge Sam Gao

 

三  字元編碼

3.1  ascii

ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多只能用 8 位來表示(一個位元組),即:2**8 = 256-1,所以,ASCII碼最多只能表示 255 個符號。註:python2.x 預設使用ascii編碼

 

3.2  中文字元集

GB2312

  一共收錄了7445個字元,包括6763個漢字和682個其它符號。漢字區的內碼範圍高位元組從B0-F7,低位元組從A1-FE,占用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。

GBK

  GB2312 支持的漢字太少。1995年的漢字擴展規範GBK1.0收錄了21886個符號,它分為漢字區和圖形符號區。漢字區包括21003個字元。

GB18030

  2000年的 GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。現在的PC平臺必須支持GB18030,對嵌入式產品暫不作要求。所以手機、MP3一般只支持GB2312。

從ASCII、GB2312、GBK 到GB18030,這些編碼方法是向下相容的,即同一個字元在這些方案中總是有相同的編碼,後面的標準支持更多的字元。在這些編碼中,英文和中文可以統一地處理。區分中文編碼的方法是高位元組的最高位不為0。

 

按照程式員的稱呼,GB2312、GBK到GB18030都屬於雙位元組字元集 (DBCS)。繁體中文,big5。

 

GB2312 GBK GB18030 占兩個位元組,並且能夠向下相容    GB18030 --> GBK --> GB2312 --> ASCILL

 

3.3  unicode

Unicode(統一碼、萬國碼、單一碼)是一種在電腦上使用的字元編碼。Unicode 是為瞭解決傳統的字元編碼方案的局限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位編碼,規定雖有的字元和符號最少由 16 位來表示(2個位元組)

註:python3.x 預設使用unicode編碼

 

3.4  utf-8

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

 

3.5  案例

#!/usr/bin/env python
# encoding: utf-8    # 告訴解釋器用utf-8編碼
# Author: Sam Gao

name = '高紹陽'      # python2.x

 print name
#!/usr/bin/env python3

# Author: Sam Gao

name = '高紹陽'  # 預設用unicode編碼

print(name)

 

四  input 輸入

4.1 簡單輸入

#!/usr/bin/env python3
# encoding: utf-8
# Author: Sam Gao

import getpass

_username = 'sam'
_password = '123456'

username = input('username:')
passwd = getpass.getpass('password:')   # 在pycharm裡面用不了,只能在互動式或者 在linux里以 python3 passwd.py 執行,作用:不會顯示輸入內容

if _username == username and _password == passwd:
    print('welcome user {name} login'.format(name=username))
else:
    print('Invaild username or password')

4.2 案例 猜年齡游戲

#!/usr/bin/env python3
# encoding: utf-8
# Author: Sam Gao

age_of_sam = 28

while True:
    guess_age = int(input('guess age:'))

    if age_of_sam == guess_age:
        print('yes, you got it')

    elif age_of_sam > guess_age:
        print('think big')
    else:
        print('think small')

 

五  while for迴圈 和 if判斷

5.1 while True:

# 參考 4.2 案例 猜年齡游戲    當不知道迴圈到哪裡的時候,就使用

 

5.2 案例

知識點:1.  有while......else.....的形式; 2. break和continus的用法;if  和  if.....elif...else     和  if...else

#!/usr/bin/env python3
# encoding: utf-8
# Author: Sam Gao

age_of_sam = 28
count = 0


'''
猜三次,如果猜正確,則退出
'''

# while True:
#     if count == 3:
#         break
#
#     guess_age = int(input('guess age:'))
#
#     if age_of_sam == guess_age:
#         print('yes, you got it')
#         break
#
#     elif age_of_sam > guess_age:
#         print('think big')
#     else:
#         print('think small')
#
#     count += 1
#####################################################
# while count < 3:
#     guess_age = int(input('guess age:'))
#
#     if age_of_sam == guess_age:
#         print('yes, you got it')
#         break
#
#     elif age_of_sam > guess_age:
#         print('think big')
#     else:
#         print('think small')
#
#     count += 1
#     if count == 3:
#         print('you guess too many times, fuck you !')

######################################################
#  或者

while count < 3:
    guess_age = int(input('guess age:'))

    if age_of_sam == guess_age:
        print('yes, you got it')
        break

    elif age_of_sam > guess_age:
        print('think big')
    else:
        print('think small')

    count += 1
else:
    print('you guess too many times, fuck you !')

5.3  使用for只玩3次

#!/usr/bin/env python3
# encoding: utf-8
# Author: Sam Gao

age_of_sam = 28

for i in range(3):
    guess_age = int(input('guess age:'))

    if age_of_sam == guess_age:
        print('yes, you got it')
        break

    elif age_of_sam > guess_age:
        print('think big')
    else:
        print('think small')

else:
    print('you guess too many times, fuck you !')


for i in range(1, 12, 3):   #   3代表步長
    print('loop:', i)

 

5.4  任性玩5.2的游戲

#!/usr/bin/env python3
# encoding: utf-8
# Author: Sam Gao

age_of_sam = 28
count = 0

while count < 3:  #   while True:
    guess_age = int(input('guess age:'))

    if age_of_sam == guess_age:
        print('yes, you got it')
        break                            # break  結束整個迴圈,不結束父迴圈
    elif age_of_sam > guess_age:
        print('think big')
    else:
        print('think small')

    count += 1
    if count == 3:
        while True:
            continue_play = input('Do you want to play:[yes/no]:')
            if continue_play == 'yes':
                count = 0
                break
            elif continue_play == 'no':
                break
            else:
                print('pls input valid string')
                continue             #   continus  跳出當前迴圈
else:
    print('you guess too many times, fuck you !')

 

 六  字元串格式化

案例

#!/usr/bin/env python3
# encoding: utf-8
# Author: Sam Gao

# username = input('usrname:')
# password = input('password:')
#
# print('username:', username)
# print('password:', password)

name = input('name:')   #  =====  python2 raw_input      python3   eval(input) =====  python2  input
age = int(input('age:'))   #  預設輸出的是字元串
job = input('job:')
salary = int(input('salary:'))

print('name:', type(name), 'age', type(age))

info = '''
----------------info of %s---------------
Name: %s
Age: %d
Job: %s
Salary: %d
''' % (name, name, age, job, salary)

# %s 字元串    %d  整數      %f   浮點數

info2 = '''
----------------info of {_name}---------------
Name: {_name}
Age: {_age}
Job: {_job}
Salary: {_salary}
'''.format(_name=name, _age=age, _job=job, _salary=salary)

info3 = '''
----------------info of {0}---------------
Name: {0}
Age: {1}
Job: {2}
Salary: {3}
'''.format(name, age, job, salary)

print(info)

print(info2)

print(info3)

 


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

-Advertisement-
Play Games
更多相關文章
  • 參考:http://blog.sina.com.cn/s/blog_55e55fcb0100o5de.html ...
  • 預設許可權 實踐:使用umask命令分別查看普通用戶和root用戶的umask屬性值。 特殊許可權 實踐:添加一個組,兩個用戶,來做下驗證 首先,添加一個組:testgrp,兩個用戶,testuser1和testuser2。 在/temp/下創建文件夾linuxcast.net,並且將該文件夾的所屬組指 ...
  • 前幾天公司來了個新同事,使用的VS2013,但我們的所有項目都是使用VS2012創建的,我想用13打開應該沒有什麼問題。昨天新同事修改完代碼提交後,我獲取完成後無法編譯成功,提示: 錯誤 3 命令“mkdir "E:\vssdata\BCenter.root\BCenter\BCenter.Cont ...
  • 最近需要把用戶的一些行為添加到資料庫中,所以想到了用log4net ,如果有別的好的方案,大家可以給我指正。 先看一下配置文件 我這個是控制台文件 app.config MyLayout 是一個映射類 控制台文 因為項目和別的項目相連,所以有需要的需要引用現有項目就可以 下載鏈接:http://pa ...
  • 本快速入門幫助你在數分鐘內將你的第一個 ASP.NET Web 應用部署到 Azure 應用服務。完成本教程後,你將能夠在雲中啟動並運行一個簡單的 Web 應用。在本教程中完成的所有操作均符合 1 元試用條件。 開始之前 本教程演示如何使用 Visual Studio 2017 構建 ASP.NET ...
  • 一、前言 最近公司新項目,需要搭架構進行開發,其中需要對一些日誌進行輸出,經過一番查找,發現很多博文都是通過Spring.Net、Unity、PostSharp、Castle Windsor這些方式實現AOP的。但是這不是我想要的,因此一番查找後,使用 該方式實現AOP。 二、使用AOP的優勢 博主 ...
  • 認識許可權 UGO Linux系統中許可權是基於UGO模型進行控制的。 實踐: 修改文件所屬用戶,組 實踐:創建目錄linuxcast.net,然後修改該目錄的所屬用戶和組。 創建文件和目錄的時候,預設是屬於當前登錄用戶和所屬組 修改許可權 實踐:如果要使linuxcast.net只能被用戶luning和 ...
  • 一、演算法原理 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 針對所有的元素重覆以上的步驟,除了最後一個。 持續每次對越來越少的元素重覆上面的步驟,直到沒有任何一對數字需要比較。 二、實現思路 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...