python基礎1

来源:http://www.cnblogs.com/guotg/archive/2016/11/17/6073974.html
-Advertisement-
Play Games

一、Python安裝1、下載安裝包 https://www.python.org/downloads/2、安裝 預設安裝路徑:C:\python273、配置環境變數 【右鍵電腦】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一 ...


一、Python安裝
1、下載安裝包
https://www.python.org/downloads/
2、安裝
預設安裝路徑:C:\python27
3、配置環境變數
【右鍵電腦】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】
如:原來的值;C:\python27,切記前面有分號


二、Hello World程式
1、在linux 下創建一個文件叫hello.py,並輸入

print("Hello World!")
然後執行命令:python hello.py ,輸出

2、指定解釋器

上一步中執行 python hello.py 時,明確的指出 hello.py 腳本由 python 解釋器來執行。
如果想要類似於執行shell腳本一樣執行python腳本,例: ./hello.py ,那麼就需要在 hello.py 文件的頭部指定解釋器,如下:

#!/usr/bin/env python
print "hello,world"

如此一來,執行: ./hello.py 即可。

ps:執行前需給予 hello.py 執行許可權,chmod 755 hello.py


三、變數
1、聲明變數:
#_*_coding:utf-8_*_
name = "Guo"
上述代碼聲明瞭一個變數,變數名為: name,變數name的值為:"Guo" 

2、變數定義的規則:
變數名只能是 字母、數字或下劃線的任意組合
變數名的第一個字元不能是數字
以下關鍵字不能聲明為變數名
['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']

3、變數的賦值:
name = "Guo"
name2 = name
print(name, name2)

name = "tg"
print(name, name2)


四、字元編碼
python解釋器在載入 .py 文件中的代碼時,會對內容進行編碼(預設ascill)

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

1、關於中文

為了處理漢字,程式員設計了用於簡體中文的GB2312和用於繁體中文的big5。

GB2312(1980年)一共收錄了7445個字元,包括6763個漢字和682個其它符號。漢字區的內碼範圍高位元組從B0-F7,低位元組從A1-FE,占用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。
GB2312 支持的漢字太少。1995年的漢字擴展規範GBK1.0收錄了21886個符號,它分為漢字區和圖形符號區。漢字區包括21003個字元。2000年的 GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。現在的PC平臺必須支持GB18030,對嵌入式產品暫不作要求。所以手機、MP3一般只支持GB2312。

從ASCII、GB2312、GBK 到GB18030,這些編碼方法是向下相容的,即同一個字元在這些方案中總是有相同的編碼,後面的標準支持更多的字元。在這些編碼中,英文和中文可以統一地處理。區分中文編碼的方法是高位元組的最高位不為0。按照程式員的稱呼,GB2312、GBK到GB18030都屬於雙位元組字元集 (DBCS)。

有的中文Windows的預設內碼還是GBK,可以通過GB18030升級包升級到GB18030。不過GB18030相對GBK增加的字元,普通人是很難用到的,通常我們還是用GBK指代中文Windows內碼。

2、顯然ASCII碼無法將世界上的各種文字和符號全部表示,所以,就需要新出一種可以代表所有字元和符號的編碼,即:Unicode
Unicode(統一碼、萬國碼、單一碼)是一種在電腦上使用的字元編碼。Unicode 是為瞭解決傳統的字元編碼方案的局限而產生的,它為每種語言中的每個字元設定了統一併且唯一的二進位編碼,規定雖有的字元和符號最少由 16 位來表示(2個位元組),即:2 **16 = 65536,
註:此處說的的是最少2個位元組,可能更多

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

所以,python解釋器在載入 .py 文件中的代碼時,會對內容進行編碼(預設ascill),如果是如下代碼的話:

報錯:ascii碼無法表示中文
#!/usr/bin/env python
print "你好,世界"

改正:應該顯示的告訴python解釋器,用什麼編碼來執行源代碼,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "你好,世界"

3、pycharm添加模板:
pycharm添加模板:File --> Settings --> Editor --> File and Code Templates --> Python Script
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author: gtg


五、註釋
  當前行註視:# 被註釋內容
  多行註釋:""" 被註釋內容 """


六、用戶輸入
#!/usr/bin/env python
#_*_coding:utf-8_*_
#name = raw_input("What is your name?") #only on python 2.x
name = input("What is your name?")
print("Hello " + name )

輸入密碼時,如果想要不可見,需要利用getpass 模塊中的 getpass方法,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import getpass
# 將用戶輸入的內容賦值給 name 變數
pwd = getpass.getpass("請輸入密碼:")
# 列印輸入的內容
print(pwd)

用戶輸入格式化字元串代碼:

name = input("you name:")
age = int(input("you age:"))
work = input("you word:")

msg = '''infomation of user %s:
---------
name:%s
age:%d
work:%s
---end---
''' % (name, name, age, work)
print(msg)

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

 


七、模塊初識:
1、getpass模塊:
輸入密碼時,如果想要不可見,需要利用getpass 模塊中的 getpass方法,即:
代碼:(pycharm下不好使)
import getpass
username = input("username:")
password = getpass.getpass("password")
print(username,password)

2、os模塊:
import os
os.system("df -h")
os.mkdir("pythondir") linux上創建目錄
cmd_res = os.popen("df -h").read() 把命令執行結果保存到變數中

3、sys模塊:
import sys
print(sys.path)


八、if else語句:
1、用戶名密碼代碼:

user = "gtg"
passwd = "123"

username = input("your name:")
password = input("your password:")

if user == username and passwd == password:
print("Welcom Login")
else:
print("username or password ERROR")

2、猜數字游戲代碼:

age = 26
for i in range(10):
if i < 3:
guess_num = int(input("guess number is:"))
if guess_num == age:
print("OK")
break
elif guess_num > age:
print("BIG")
else:
print("SMALL")
else:
print("QUIT")
break

猜數字游戲代碼優化代碼:

age = 26
count = 0
for i in range(10):
if count < 3:
guess_num = int(input("guess number is:"))
if guess_num == age:
print("OK")
break
elif guess_num > age:
print("BIG")
else:
print("SMALL")
else:
continue_confirm = input("want to continue:")
if continue_confirm == 'y':
count = 0
continue
else:
print("QUIT")
break
count +=1

 


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

-Advertisement-
Play Games
更多相關文章
  • note eight 使用元類 動態語言和靜態語言最大的不同,就是函數和類的定義,不是編譯時定義的,而是運行時動態創建的。 程式的調試用logging 模塊 import logging 單元測試 為了編寫單元測試,我們需要引入pytho... ...
  • 題:輸入一個數字,轉換成中文大寫的寫法 可運行的程式(Python 2.7.9): 註:剛剛學習的初級程式寫法,有很多不全的地方,比如:1.輸入“082”開頭是0的數字一樣會輸出“零佰扒拾貳”,應該需要更多的判斷語句;2.輸入“034354”會直接報錯,應該沒有加異常處理造成的結果。 後續會繼續學習 ...
  • 1991年1月 Sun公司成立了Green項目小組,專攻智能家電的嵌入式控制系統 1991年2月 放棄C++,開發新語言,命名為“Oak” 1991年6月 JamesGosling開發了Oak的解釋器 1992年 Green完成了Green操作系統、Oak語言、類庫等開發 1992年11月 Gree ...
  • Math.random() 生成[0, 1)範圍內的double類型隨機數 。線程安全,多線程環境能被調用。 (int)(Math.random()*n) 生成 [0 , n) 之間的隨機整數。 比如 (int)(Math.random()*100) 生成 [ 0, 100 ) 之間的隨機整數。 如 ...
  • 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #!/usr/bin/env python # -*- coding: utf-8 -*- """ Created on Mon Nov 14 01:01:29 2016 @ ...
  • 把php中的excel顯示下載頁下載到本地硬碟需要設置頭信息: 代碼: ...
  • Gradle是一種自動化建構工具,使用DSL來聲明項目設置。通過Gradle,可以對項目的依賴進行配置,並且自動下載所依賴的文件,使得構建項目的效率大大提高。 1. 安裝Gradle 下載Gradle的最新版本,並解壓,設置環境變數GRADLE_HOME,並且將%GRADLE_HOME%\bin添加 ...
  • 在面向對象的編程中,通常把用類創建對象的過程稱為實例化。 類名 對象名 = new 類名(參數1,參數2...參數n); 如 Date date=new Date();就是用日期類創建了一個日期的對象,就叫對象的實例化。 多數語言中,實例化一個對象 就是為對象開闢記憶體空間,或者是不用聲明,直接使用 ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...