record 07 異常語句處理 物件導向

2022-07-13 12:51:11 字數 4061 閱讀 3461

#__author: hasee

#date: 2018/1/13

# 有10個人圍成一圈,順序排號。從第乙個人開始報數(從1到3報數),凡報到3的人退出圈子

# 設計乙個程式計算最後留下的是原來第幾號的那位

# 答案:4

# 讓10個人圍成一圈

l1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

num = 1

for i in l1:

if num != 3: #

if num > 3: # 當num超過3時,通過重新賦值變回1

num = 1

# print(num) #報數,從1到3

num = num + 1

# print(l1)

print(l1[-1])

# 假如有一輛汽車,速度是60km/h,從a地行駛到b地(距離100km),計算耗費的時間

# 分別以面向過程、物件導向兩種不同的程式設計思想設計程式

# 面向過程

# 1、確定汽車行駛的距離

d = 300

# 2、確定汽車的速度

s = 80

# 3、利用距離/速度確定耗費的時間

result = d / s

# 4、輸出計算的結果

print("%.2f" % result)

# 物件導向

# 1、分析參與的物件-汽車

# 2、分析物件的行為屬性-行駛、資料屬性-速度

# 3、抽象出類,並完成類的定義

class car:

# 類體-行為屬性、資料屬性

# 分析資料屬性通過哪種變數描述:類變數、物件變數

# 定義物件變數

def __init__(self, speed):

self.s = speed

# 描述行為屬性

def drive(self, distance):

# 通過距離/速度,反饋耗時

result = distance / self.s

print("%.2f" % result)

# 4、梳理過程,並明確過程中物件是如何參與的

c1 = car(80)

c1.drive(300)

#設計乙個程式,能夠隨機生成乙個四位的驗證碼,驗證碼中可以出現數字和字母

from random import choice

#a-z 65-90

#a-z 97-122

#print(ord('b'))

#print(chr(98))

s1=''

for i in range(97,123):

s1=s1+chr(i)

print(s1)

for j in range(65,91):

s1=s1+chr(j)

print(s1)

for x in range(0,10):

s1=s1+str(x)

print(s1)

result=''

for i in range(4):

result=result+choice(s1)

print(result)

#異常處理

#通過在**中實現異常處理,能夠在程式發生異常時,完成異常的自定義處理

#通過在**中實現異常處理,能夠在程式發生異常時,讓程式繼續向下執行

#try

#將可能會在執行期間發生異常的**,放到try結構體中

#except

#一旦try結構體中的**發生異常,可以通過except來捕獲異常

#except關鍵字後面,可以指定異常型別的名稱,代表當前except只處理這種型別的異常

#在try語句後面可以有多個except,代表同一段**發生的不同型別的異常分別處理

#多個except語句執行時,有先後順序,如果先執行的except捕獲到異常,後面的except就不再執行

#乙個except語句後面,可以指定多種異常型別名稱(逗號、括號),代表這幾種異常按照相同的方式處理

#else

#代表沒有發生異常時,要做的事情

#finally

#不論是否發生異常,都要做的事情

#raise

#主動丟擲異常,可以作為控制程式執行邏輯的一種特殊方式

print("請輸入乙個數字:")

try:

num=int(input())

if num<0:

#print("小於0")

raise valueerror

else:

#print("大於0")

raise ioerror

except valueerror:

print("小於0")

except ioerror:

print("大於0")

else:

print(num+1)

finally:

print("hello")

print("hello")

# 面向過程思想

# 以事件為中心

# 梳理事件的解決過程

# 明確過程中每一環節應該做的工作

# 明確程式在過程中是如何參與的

# 通過編寫**將程式應該做的工作實現出來,並最終得到完整的程式

# 物件導向思想

# 以物件為中心

# 先明確事件的解決過程中有哪些物件參與

# 梳理在物件參與時,有哪些行為和資料

# 通過**來描述物件

# 梳理事件的過程,並明確物件如何參與

class pen:

# 類體

# 資料屬性-變數(類變數、物件變數)

# 類變數 同類物件共有的資料

# 類變數在類體中,類的方法外定義

# 類變數在使用時,需要通過類名修飾

# 物件變數 每乙個物件特有的資料

# 物件變數在類體中,類的方法內定義(很多時候是在__init__方法中定義)

# 物件變數在使用時,需要通過物件名來修飾

num = 0

# __init__在物件被建立時,自動執行

# __init__方法更多的用於對物件做初始化處理

def __init__(self):

pen.num = pen.num + 1

self.color = 'red'

print("hello")

# 行為屬性-函式(類的方法)

def write(self):

# self.color='red'

print("hello")

p1 = pen()

p2 = pen()

print(pen.num)

print(p1.color)

print(p2.color)

# pen.write(p1)

# p1.write() #簡化,執行時被轉換成pen.write(p1)

# print(p1.color)

class student:

__num = 0 # 變數命名時,以雙下劃線開頭,即為私有變數

# 私有變數不能在類外訪問

# 資料屬性

def __init__(self, n):

self.name = n

self.__baoshu()

# 行為屬性

def __baoshu(self):

print(self.name)

s1 = student('zhangsan')

異常處理語句:

try:

可能出錯

except(捕獲異常): #except後不加任何異常名稱表示所有的異常,等同於except exception:

except(valueerror,ioerror): #表示多個異常型別名稱用元組括起來,加逗號

class student: #student 第乙個要大寫,與函式分開

def __init__(self):

pass #用pass沒有任何結果,只是確保語法完整性

Record07 指標的本質是資料型別

目錄 指標是一種資料型別 指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 測試一下指標變數占用空間大小 p的含義 操作記憶體 p放在等號的左邊賦值 給記憶體賦值 p放在等號的右邊取值 從記憶體獲取值 指標變數和它指向的記憶體塊是兩個不同的概念 指標是一種資料型別,是指它指向的記憶體空間的資料型...

異常處理語句

在程式的編寫過程中會出現各種錯誤,語法錯誤在程式啟動時就會檢測出來,它是程式正常執行的前提條件。程式中還有一種錯誤發生在程式執行後,可能是由於邏輯問題,又或者是業務發生了改變,為了能讓使用者有更好的體驗,加強 的健壯性,我們需要對這些錯誤進行處理,也叫異常處理。在python中不同的異常可以用不同的...

C 語句異常處理語句

1,try.catch.finally 不會找到邏輯錯誤,try裡面放檢測 catch 捕捉到的異常,怎樣處理finally不管有沒有異常都會執行 try catch finally 3種組合 2,finally 很頑強 return後仍然會執行 3,4,excption的用法 exception是...