python自帶的解釋器叫做_python學習

一、PYTHON中的元素

1.基本元素

運算符: + - * / %等等

除法:

" / " 表示浮點數除法,返回浮點結果;

" // " 表示整數除法,返回不大于結果的一個最大的整數

運算順序:先乘除 再加減 括號最優先

變量:就是一個標簽:,由非數字開頭的字母、數字、下劃線組成,它的內容可以是數值、字符串、列表、元組和字典。

數值,就是數字。如a = 100

字符串,就是用一對雙引號、或單引號引起來的內容,只要被引號引起來,就是字符串了。

如: b = ”Hello World”

100是數值,而 ”100”是字符串。

轉義字符

\t 表示 tab ? ???????????????? \n 表示 換行

%s 占位,用%后的變量替換

如:

a = 100

b = ” HelloWorld ”

print (” point = %s \n \”?%s?? \” ”? % (a, b)? )

打印出:

point=100

” HelloWorld ”

2.列表

例如:

c = [1,2,3,4,5,6,7]

d = [”張三”,”李四”,”王五”]

e =[1,2,3,”4”,”5”,d]

用 列表名[索引號] 索引列表中的元素

d[0]表示列表d中的第1個元素“張三”

用列表名[起 : 止]表示切片,從列表中切出相應的元素 前閉后開

c[0:2] 切出 [1,2]

c[ : ] 切出[1,2,3,4,5,6,7]

用列表名[起 : 止: 步長] 帶步長的切片,步長有方向。

如c = [1,2,3,4,5,6,7] ,若切出 [5,4,3,2] 用c[4 :0 :-1]? ; 切出[5,4,3,2,1]用 c[4 ::-1] ;切出 [6,4,2] 用 c[-2 ::-2]; 從倒數第二個開始一直切到頭,步長-2

修改:列表名 [ 索引號 ] = 新值

刪除:del 列表名[ 索引號 ]

插入: 列表名.insert(插入位置索引號,新元素)

3.元組

一旦定義不能改變

f=(1,2,3)

4.字典

字典里放著 {鍵:值, 鍵:值, 鍵:值} n 個鍵值對

dic={1:”123”,”name”:”zhangsan”,”height”:180}

用字典名[ 鍵 ] 索引字典中的值

dic[”name”] 表示字典dic 中鍵”name”對應的值”zhangsan”

修改:字典名 [ 鍵 ] = 新值

刪除:del 字典名[ 鍵 ]

插入:字典名[ 新鍵 ] = 新值

二、python語法

Python 代碼是使用四個空格的縮進表示層次關系的

條件語句

一般用法

例如:

if a==1:

print(a)

else:

pass??????????????????????? # pass指不做任何處理

有多個判斷條件時

例如:

if a==1 or b==1:?????????? # 用 or 和 and 連接

print(a)

else

pass

循環語句

for 變量 in range (開始值,結束值)?????? 例如:

for 變量 in 列表名??? 如:

M = ['a', 'p', 'o']

for i in M:

while?? 條件:

終止循環用 break

函數

函數(function):組織好的,可重復使用的,用來實現單一或相關聯功能的代碼段。

比如input()就是一個函數,可以直接使用函數,不用每次重新定義如何從控制臺接收輸入,所以函數是幫助實現代碼復用的。

定義函數:def??? 函數名?? (參數表):

函 數 體括號里的參數如果不需要可以為空

使用函數:函數名 (參數表)

如 :input("please input your class number:")

定義:def hi_name(yourname):

print ”Hello %s”%yourname 使用:hi_name(”zhangsan”)

會輸出:Hello zhangsan

函數返回值: return

def add(a,b):

return a+b

c=add(5,6)?????????????? # c 被賦值為 add的返回值 11

模塊

模塊(module):是一個 Python 文件,以.py 結尾,包含了 Python 函數等語句。先導入,再使用,用模塊.函數名調用。

例如1:

import time

time.asctime ( )

輸出:'Tue Jan 1621:51:06 2018'

例如2:

import turtle # 導入 turtle 模 塊

t = turtle.Pen ( ) #用 turtle 模塊中的 Pen 類,實例化出一個叫做 t 的對象

t.forward (像素點)? #讓 t 向前走多少個像素點

t.backward (像素點)? #讓 t 向前走多少個像素點t.left (角度)???????? #讓 t 左轉多少角度 t.right (角度)??????? #讓 t 右轉多少角度t.reset ( ) # 讓 t 復 位

包含有多個模塊,如:from PIL import Image

變量作用域

局部變量:在函數中定義的變量,只在函數中存在,函數執行結束不可再用。全局變量,在函數前定義的變量,一般在整個代碼最前面定義,全局可用。

三、類、對象和面向對象的編程

類(class):用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。物以類聚人以群分,類是可實例化出對象的模具。

實 例 化 : 對 象 = 類()? 如:t = turtle.Pen()

對象:是類實例化出的實體,對象實實在在存在,完成具體工作。

面向對象:程序員反復修改優化類,類實例化出對象,對象調用類里的函數執行具體的操作。

例如在上圖中,有動物、哺乳動物和貓。 動物是一個類,他們具有共同的功能:呼吸、移動和吃東西。哺乳動物也是一個類,他們是動物類里的子類,是在動物類的基礎上多了喂奶的功能。貓是哺乳動物類的一個子類,貓類在哺乳動物的基礎上多了捉老鼠的功能。

類命名時第一個字母常大寫,比如 Animals、Mammals 和 Cats 的首字母都大寫了。這些類的右側列出了每個類具有的功能:比如呼吸、移動和吃東西是動物這個類具備的功能,在計算機中用函數的形式表示。喂奶是哺乳動物的功能,是哺乳動物這個類里的函數。捉老鼠是貓類具有的功能,是貓類的函數。

√上面的類是下面類的父類;下面類是上面類的子類

√子類實例化出來的對象,可以使用自身和父類的函數與變量

類的定義:

class 類名 (父類名) :

pass

如果有父類,寫在類名后面的括號里;如果沒有父類,可以不寫括號了。用關鍵詞 pass 占個位置,之后再用具體函數把類補充完整。

舉例:classAnimals:

pass

classMammals(Animals):

pass

classCats(Mammals):

pass

類里定義函數時,語法規定第一個參數必須是 self 。

init__函數,在新對象實例化時會自動運行,用于給新對象賦初值。

(1)將貓類實例化出一個叫 kitty 的對象,kitty 有自己的特征屬性,比如身上有 10 個斑點:

kitty = Cats(10)??????? #實例化時運行init函數,給 spots 賦值,告知 kitty 有 10 個斑點

print”kitty.spots” #打印出 10

(2)kitty 可以做具體的工作,比如捉老鼠:

kitty.catch_mouse()#對象運行函數,必須用對象.函數名,調用類里的函數

#會運行 print ”catch mouse” 故打印出catch mouse

對象調用類里的函數,用對象.函數名;

對象調用類里的變量,用對象.變量名。

類內定義函數時,如調用自身或父類的函數與變量,須用self.引導, 應寫為 self.函數名或 self.變量名。

代碼驗證:

補充:

Python 中雖然沒有訪問控制的關鍵字,例如 private、protected 等等。但是,在Python 編碼中,有一些約定來進行訪問控制。

單下劃線、雙下劃線、頭尾雙下劃線說明:

_foo: 以單下劃線開頭的表示的是 protected 類型的變量,即保護類型只能允許其本身與子類進行訪問,不能用于 frommodule import *

foo:雙下劃線的表示的是私有類型(private)的變量, 只能是允許這個類本身進行訪問了。

foo__: 頭尾雙下劃線定義的是特列方法,類似init() 之類的。

四、文件操作

文件寫操作

import pickle

開:文件變量= open(”文件路徑文件名”, ”wb”)

存:pickle.dump(待寫入的變量,文件變量)

關:文件變量.close()

代碼驗證:

文件讀操作

import pickle

開:文件變量= open(”文件路徑文件名”, ”rb”)

取:放內容的變量 =pickle.load(文件變量)

關:文件變量.close()

代碼驗證:

五、編程中的一些問題

全局變量自增自減的問題

目標是實現一個全局累加的功能,但python中沒有static類型,調用全局變量老出錯,最后通過在另一個py文件中定義該全局變量,本py文件中叫用該變量實現自增自檢。

參考鏈接:https://www.jb51.net/article/154501.htm

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454091.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454091.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454091.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IE打印空白

今天碰到HR經理碰到一個問題,就是windows 7 64位操作系統,但是打印空白,打印出來像白紙一樣!經過查看和總結,確認是:由于保護模式下 %Temp%\Low 文件夾工作不正常引起的!故障打印白紙下面會出現…

Python Matplotlib.plot Update image Questions

1. 最近在測試一款設備,采集了一些設備后需要一幀一幀顯示圖像,經常使用Python,所以選用了Matplotlib進行圖像操作 數據結構: timesatamp polar_distance horizontal_angle refelectivity_intensity,所有數據類型都是 float,儲存在…

深度學習之 RBF神經網絡

RBF神經網絡通常只有三層,即輸入層、中間層和輸出層。其中中間層主要計算輸入x和樣本矢量c(記憶樣本)之間的歐式距離的Radial Basis Function (RBF)的值,輸出層對其做一個線性的組合。 徑向基函數: RBF神經網絡的訓練…

redis 隊列_Redis與Rabbitmq消息隊列的區別

將redis發布訂閱模式用做消息隊列和rabbitmq的區別:可靠性 redis :沒有相應的機制保證消息的可靠消費,如果發布者發布一條消息,而沒有對應的訂閱者的話,這條消息將丟失,不會存在內存中;rabbit…

EasyUI中那些不容易被發現的坑——EasyUI重復請求2次的問題

問題控件:datagrid、combobox、所有能設置url屬性的控件 問題版本:1.4.4、1.4.5(之前的版本沒測) 問題如圖: 重復請求2次,錯誤代碼如圖: 錯誤問題分析:html加載的時候回請求url加載數…

GCC編譯的背后( 預處理和編譯 匯編和鏈接 )

發表于 2010年05月18日 22:01 分類: 編程coding統計: 1評/465閱 2人收藏此文章&#xff0c; 收藏此文章(?)by falcon<zhangjinwgmail.com> 2008-02-22 平時在Linux下寫代碼&#xff0c;直接用"gcc -o out in.c"就把代碼編譯好了&#xff0c;但是這后面到底做了…

ElasticSearch Java API

ElasticSearch-Java Client類型 ElasticSearch-TransportClient環境準備 ElasticSearch-TransportClient連接 ElasticSearch-Document APIs ElasticSearch-搜索-原理 ElasticSearch-搜索-問題 ElasticSearch-搜索-問題解決思路 ElasticSearch-搜索-SearchType-類型一 E…

深度學習之卷積神經網絡(Convolutional Neural Networks, CNN)

前面, 介紹了DNN及其參數求解的方法(深度學習之 BP 算法),我們知道DNN仍然存在很多的問題&#xff0c;其中最主要的就是BP求解可能造成的梯度消失和梯度爆炸.那么,人們又是怎么解決這個問題的呢?本節的卷積神經網絡(Convolutional Neural Networks, CNN)就是一種解決方法. 我們…

Oracle DBA課程系列筆記(16)

第十六章&#xff1a; 用戶管理 1、schema &#xff1a; user.object &#xff0c;用戶認證方式&#xff1a;os 認證&#xff0c;database 認證 2、建立 database認證的用戶&#xff1a; 10:00:48 SQL> create user rose …

python序列是幾維_從一個1維的位數組獲得一個特定的2維的1序列數組[Python] - python...

我正在使用Python&#xff0c;我需要找到執行以下任務的最有效方法。任務&#xff1a;給定零和一的任何一維數組v&#xff0c;用k> 0表示v的所有一維的子序列數。我需要從v獲得一個二維數組w&#xff0c;使得&#xff1a;1)shape(w)(k&#xff0c;len(v))&#xff0c;2)對于…

深度學習之卷積神經網絡(Convolutional Neural Networks, CNN)(二)

前面我們說了CNN的一般層次結構, 每個層的作用及其參數的優缺點等內容.深度學習之卷積神經網絡(Convolutional Neural Networks, CNN)_fenglepeng的博客-CSDN博客 一 CNN參數初始化及參數學習方法 和機器學習很多算法一樣, CNN在進行訓練之前也要進行參數的初始化操作. 我們…

GCC Inline ASM GCC內聯匯編

GCC 支持在C/C代碼中嵌入匯編代碼&#xff0c;這些匯編代碼被稱作GCC Inline ASM——GCC內聯匯編。這是一個非常有用的功能&#xff0c;有利于我們將一些C/C語法無法表達的指令直接潛入C/C代碼中&#xff0c;另外也允許我們直接寫 C/C代碼中使用匯編編寫簡潔高效的代碼。1.基本…

Hadoop1.x版本升級Hadoop2.x

引言 隨著企業數據化和Hadoop的應用越加廣泛&#xff0c;hadoop1.x的框架設計越來越無法滿足人們對需求&#xff0c;Apache一直在對Hadoop1.x進行修改&#xff0c;最后推出了新一代的Hadoop2.x。從業界使用分布式系統的變化趨勢和 hadoop 框架的長遠發展來看&#xff0c;MapRed…

本頁由試用版打印控件lodop6.2.6輸出_Visual Basic 6.0 Sirk 迷你版

Visual Basic 6.0 Sirk 迷你版 VB6 Sirk Mini 2019更新1、支持主流操作系統&#xff0c;避免原版安裝失敗的問題&#xff1a;支持Windows XP、Vista、Win7、Win8、Win10(32位、64位)。2、保留大部分常用功能&#xff0c;避免精簡版過度精簡&#xff1a;包含原版完整控件&#x…

深度學習之卷積神經網絡 LeNet

卷積神經網絡典型CNN LeNet&#xff1a;最早用于數字識別的CNNLeNet5&#xff1a;現在常說的一般就是LeNet5AlexNet&#xff1a;2012ILSVRC冠軍&#xff0c;遠超第二名的CNN&#xff0c;比LeNet更深&#xff0c;用多層小卷積疊加來替換單個的大卷積ZF Net&#xff1a;2013ILSV…

python爬蟲常見反爬措施_爬蟲常見的反爬措施有哪些

爬蟲常見的反爬措施有三種&#xff1a;1、header頭部信息解決方法&#xff1a;加User-Agent值&#xff1a;如果不加header頭&#xff0c;部分網站服務器判斷不到用戶的訪問來源&#xff0c;所以會返回一個404錯誤來告知你是一個爬蟲&#xff0c;拒絕訪問&#xff0c;解決辦法如…

dom4j的讀寫xml文件,讀寫xml字符串

百度了一些博客&#xff0c;大同小異&#xff0c;在選取jar包工具的時候大概看了下&#xff0c;大抵是jdom原始&#xff0c;dom4j優秀。于是做了些練習。 參考&#xff1a;http://www.cnblogs.com/mengdd/archive/2013/06/05/3119927.html 1 package com.test.xml;2 3 import j…

深度學習之數據增強方案和TensorFlow操作

一、數據增強的方法介紹 增加訓練數據&#xff0c; 則能夠提升算法的準確率&#xff0c; 因為這樣可以避免過擬合&#xff0c; 而避免了過擬合你就可以增大你的網絡結構了。 當訓練數據有限的時候&#xff0c; 可以通過一些變換來從已有的訓練數據集中生成一些新的數據&#x…

移動前端頭部標簽(HTML5 head meta)

<!DOCTYPE html> <!-- 使用 HTML5 doctype&#xff0c;不區分大小寫 --> <html lang"zh-cmn-Hans"> <!-- 更加標準的 lang 屬性寫法 http://zhi.hu/XyIa --> <head><!-- 聲明文檔使用的字符編碼 --><meta charsetutf-8>&l…

python新建文件夾口令_python編程快速上手—口令保管箱

之前小編為大家整理了如何成為一個優秀的程序員應該具備的品質&#xff0c;接下來為大家展示一個簡單有趣的python小項目&#xff0c;從中體會編程的樂趣。小編了解這個小項目之后&#xff0c;很是驚奇&#xff0c;覺得python竟然還可以做這樣的事情。為什么要建立口令保管箱&a…