python基础课程2(看代码看注释)--条件判断|循环|函数|生成器|类
生活随笔
收集整理的這篇文章主要介紹了
python基础课程2(看代码看注释)--条件判断|循环|函数|生成器|类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
##人生苦短,我用python
##課程內容
#條件判斷
#循環
#類:簡單介紹類的用法##條件判斷
#if condiction:# dosomething
#else:
# dosomething
total_cost = 32.5
if total_cost>30:discount = 0.9
elif total_cost>20:diacount = 0.95
else :discount = 1
total_cost = discount
print('小姐姐買水果的花費為:{}元'.format(total_cost))
#布爾型變量做運算
a = True
b = False
print('a is {},b is {}'.format(a,b) )
print('a and b is {}'.format(a and b) )
print('a or b is {}'.format(a or b) )
print('not a is {}'.format(not a) )
##條件判斷的近親-斷言:我斷言它肯定是這樣的,如果不是我就崩潰
age=19
assert age==18,'她竟然不是18歲'#如果age是18則是18,如果不是就輸出“她竟然不是18歲”。為了程序員捕捉或者調試錯誤出現的##循環for循環(遍歷循環),while循環(條件循環)
#for循環:遍歷循環
costs = [2,3,5,7,9,4]
for cost in costs:print('消費{}元'.format(str(cost).center(10))#str()轉換成字符串形式,center()為了格式好看
#生成一個長度為20的一個隨機列表
# 生成隨機數需要使用random模塊
import random
# 生成一個1-10之間的隨機數
random.randint(1,10)
random_numbers = []
while len(random_numbers)<20:random_numbers.append(random_numbers.randint(1,10))
print(random_numbers,len(random_numbers))random_numbers = []
for i in range(20):random_numbers.append(random.randint(1,10))
print(random_numbers,len(random_numbers))
##編程建議:就是只要能使用for循環就不要使用while循環
##當循環條件跟數量沒有關系時只能使用while循環
#題目:往空列表添加隨機數,直到添加的數為9時結束,只能用while
random_numbers = []
while 9 not in random_numbers:random_numbers.append(random.randint(1,10))
print(random_numbers,len(random_numbers))
##問題:a = [1,2,3]是個列表,判斷b = 1,c = (b in a),判斷c是什么類型,是不是一個元組呢?不是元組,是一個布爾型變量。元組永遠是true
import time
number = 0
while True:time.sleep(1)number+=1print('hello world,{}'.format(number),end = '\r')
a = []
b = ()
type(a),type(b)
random_numbers=[6,3,7,5,9]
#跳出本次循環
for number in random_numbers:if number % 2 ==0:print('{} is 偶數'.format(number))else:continue
#跳出全部循環
for number in random_numbers:if number % 2 == 0:print('{} is 偶數'.format(number))else:breakprint("沒有跳過")
else:print('全是偶數')
##for 可以構建推導式:可以從一個數據系列構建另一個數據系列
random_numbers = list(range(10))
random_numbersnew_numbers = []
for number in random_numbers:new_numbers .append(number=10)
#g構建推導式:
new_numbers = [number*10 for number in random_numbers]##拼湊出新的列表,叫做列表推導式,即我們是在列表里使用for進行的推導式,也可以擁有字典推導式
##字典推導式
print(dict_numbers = {number :'A' for number in random_numbers})
tuple_number = (number*10 for number in random_numbers)##tuple此時是一個生成器,是一個可迭代的序列
##生成器:在網上下電影想下高清的但是內存不夠,但是還是可以看到大于內存的,說明電影不是一下子就下載到內存上的,是一邊播放一邊下載的。
tuple(tuple_number)###函數:抽象概念 函數名 括號傳遞參數 return返回值 位置參數是不可以交換位置的
variable_item = {'a':100,'b':200,'c':300,'d':400,'e':500}
[key for key,value in variable_item.items() if value ==100]##繁瑣
#定義函數
def get_keys(dict_variable,value):return [k for k,v in dict_variable.items() if v ==value]
get_keys(variable_item,100) #調用的時候傳遞的參數才是實參
#函數是封裝好的,可以重復使用的,能夠完成特定功能的代碼塊,它是代碼的抽象
def pow1(x,a):y = x**aprint('y is {}'.format(y))
y1 = pow1(2,3)#不建議對可變類型在函數內進行更改,建議用函數返回值進行重新賦值
def test(variable):temp = variable.copy()temp.append(100)return tempvar = []
var = test(var)#參數收集:就是在用的時候還不知道要不要用其他的參數,就先進行一下空間的開辟## **就是收集key=value這種形式的參數
def test2(name,age,*args,**kwargs):print(name,age,*args,**kwargs)
test('wrong',12,23,'[k]',[12,23])
dict_variable={'weight':100,'height':200
}
test('wrong',12,**dict_variable)#收集位置參數,收集關鍵字參數?##裝飾器:
a = 10
b = [11,12]def test():print('test')
c = test
#可以把函數賦值給一個變量,函數返回函數,函數可以當做函數的·返回值進行返回
def test1(func):return func
f = test1(func)
f.__name__
f()
#返回一個從0-1的浮點數
import random
def test():return round(random.random(),1)
#函數返回的浮點數保留3個有效數字
##python另一個語法糖。裝飾器
@decorator
import random
def test():return random.random(),1
@decorator
def decorator(func):def wrapper(*args,**kwargs):#do somethingreturn round(func(*args,**kwargs),3)return wrapper()
f = decorator(test)
test.__name__###類
class Person:def __init__(self,name,age):
#初始化函數中,self后邊是實例化對象的屬性,加下劃線的意思是這個屬性是私有的,不應該訪問self._name = name#表示我該屬性是隱私的self._age = agedef get_name(self):return self._names = 'hello world'
a.center(12)
p = Person('wang',12)
p.get_name()
#繼承
class Student(person):pass #什么都不做,占個位而已
總結
以上是生活随笔為你收集整理的python基础课程2(看代码看注释)--条件判断|循环|函数|生成器|类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python数模笔记-StatsMode
- 下一篇: Python小白的数学建模课-06.固定