python 從入門到實戰(基礎知識複習和回顧)

原創:叫我詹躲躲 來源:掘金 連接:juejin.im/post/5f05e1…python

1編寫第一個程序(python 3)

print('hello world!')
複製代碼

2.查看python 版本號

python -v
複製代碼

3.使用變量

message = 'hello world!'
 print(message) 複製代碼

4.字符串

name = 'jetty'
print(name.title()) #Jetty 首字母大寫 print(name) jetty name.upper() #JEETY 轉大寫 name.lower() #jetty 轉小寫 複製代碼

5.合併拼接字符串

first_name = 'hongzhu'
last_name = 'zhan' full_name = last_name +" "+ first_name print(full_name) zhan hongzhu 複製代碼

6.使用製表來添加空白

language = 'python\nJavascript\nC\nRust'
print(language)   打印 python Javascript C Rust  複製代碼

7.刪除空白

_blank = ' python '
print(_blank.rstrip()) #去除右側空白 print(_blank.strip()) #去除兩側空白 print(_blank.lstrip()) #去除左側空白  複製代碼

8.變量類型

num = 2.340
print(int(num)) #整型 2 print(float(num)) #浮點型 2.34 複製代碼

9.列表

color = ['red','green','yellow','pink']
 #訪問元素 print(color[0]) ##red  #修改 color[0] = 'black'  #添加元素 color.append('orange')  #插入元素  color.insert(0,'blue') #插到第一位 print(color)  #刪除元素 del color[0] #刪除當前元素  color.pop() #刪除數組最後一個元素  color.remove('red') #刪除紅色  複製代碼

10 組織列表

10.1排序列表

num_list = [1,2,3,4,2,1,3,1,2]
num_list.sort() print(num_list) [1, 1, 1, 2, 2, 2, 3, 3, 4] 複製代碼

10.2臨時排序

num_list = [1,2,3,4,2,1,3,1,2]
print(sorted(num_list)) [1, 1, 1, 2, 2, 2, 3, 3, 4] 複製代碼

10.3reverse 反序

num_list = [1,2,3,4,2,1,3,1,2]
num_list.reverse() print(num_list) [2, 1, 3, 1, 2, 4, 3, 2, 1] 複製代碼

10.4列表的長度

num_list = [1,2,3,4,2,1,3,1,2]
print(len(num_list)) 9 複製代碼

11 遍歷列表

num_list = [1,2,3,4,2,1,3,1,2]
for i in num_list:  print(i,end=" ") #一行顯示 複製代碼

12.使用函數遍歷

num_list = [1,2,3,4,2,1,3,1,2]
for i in range(len(num_list)):  print(num_list[i],end=" ")  複製代碼

13.乘方運算

squares = []
for i in range(1,6):  squares.append(i**2) print(squares) [1, 4, 9, 16, 25]  複製代碼

14.內置函數

num_list = [1,2,3,4,2,1,3,1,2]
print(max(num_list)) 4 print(min(num_list)) 1 print(sum(num_list)) 19  複製代碼

15.列表解析

squeres = [value**2 for value in range(1,11)]
print(squeres) [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 複製代碼

16.練習示例

16.1 1-50奇數的和

odd_number =[]
for i in range(1,11,2):  odd_number.append(i) print(sum(odd_number)) 複製代碼

16.2 3-90 3的倍數

three_nmu = []
for i in range(3, 91):  if (i % 3==0):  three_nmu.append(i) print(three_nmu) 複製代碼

16.3 1-10 的立方

squares = []
for i in range(3,11):  squares.append(i**3) print(squares) 複製代碼

16.4 1-10 的立方列表解析

squares = [i**3 for i in range(3,11)]
print(squares) 複製代碼

17 列表切片

num_list = [1,2,3,4,2,1,3,1,2]
 print(num_list[0:5]) [1, 2, 3, 4, 2] #從第一個開始取值到第五位 print(num_list[:5]) [1, 2, 3, 4, 2] #默認會從第一個開始取值 print(num_list[5:]) [1, 3, 1, 2] #取後面的4位  複製代碼

18 元組

dimensions = (100,300)
print(dimensions[0]) 100  for i in dimensions:  print(i) 100 300 複製代碼

19 if 語句

num_list = [1, 2, 3, 4, 2, 1, 3, 1, 2]
for i in num_list:  if i == 2:  print(i) 複製代碼

20 !=

num_list = [1, 2, 3, 4, 2, 1, 3, 1, 2]
for i in num_list:  if i != 2:  print(i) 複製代碼

21 and

num_list = [1, 2, 3, 4, 2, 1, 3, 1, 2]
for i in num_list:  if i >=1 and i <=2:  print(i) 複製代碼

22 字典

alien  = {'color':0,'points':1}
print(alien['color']) ##color 複製代碼

23 修改字典

alien  = {'color':0,'points':1}
alien['color'] = 'red' print(alien) {'color': 'red', 'points': 1} 複製代碼

24 刪除字典

alien  = {'color':0,'points':1}
del alien['color'] print(alien) 複製代碼

25 案例練習

25.1建立兩我的的字典,存儲在列表,遍歷列表,輸出列表

people_nums1 = {'name':'jetty','name1':'jack'}
people_nums2 ={'name':'kitty','name1':'james'} peoples = [people_nums1,people_nums2] for i in peoples:  print(i) 複製代碼

26.用戶輸入和while循環

ipt = input('你是小黃麼?1(true) or 2(false)?')
if ipt =='1':  print('是本人') else:  print('不是本人')  複製代碼

27 % //運算符

print(4 % 2)   0
print(4 // 2) 2 複製代碼

28 while運算符

count = 0
arr = [] while count < 20:  for j in range(1, 100):  if j % 11 == 0:  count = count+1  arr.append(j) print(arr) 複製代碼

29 函數

#簡單求和
def num_sum(arr):  result =0  for i in arr:  result =result+i  return result  print(num_sum([1,2,3,4])) 10 複製代碼

30 函數默認值

def num_sum(arr=[1,2,3]):
 result =0  for i in arr:  result =result+i  return result  print(num_sum()) 6 複製代碼

31 傳遞任意數量的實參

def make_prize(*top):
 return top  print(make_prize(1)) print(make_prize(1,2,3)) print(make_prize(1,3,4,5)) print(make_prize(1,1,1,1,1))  #返回 (1,) (1, 2, 3) (1, 3, 4, 5) (1, 1, 1, 1, 1) 複製代碼

32 導入函數

# 隨機數
import random print(random.randint(1,19)) 複製代碼

33 類

class Dog():
 def __init__(self,name,age):  self.name =name  self.age = age   def sit(self):  print(self.name+''+self.age)  dog = Dog('jeety',24) print(dog.name)  複製代碼

34 類 汽車裏程表

class Car():
 def __init__(self,make,model,year):  self.make = make  self.model = model  self.year = year   def getCarName(self):  print(self.model)  car = Car('audi','ad4',2016) print(car.make) 複製代碼

35 子類方法 init()

class Car():
 def __init__(self,name):  self.name = name  class Elastic(Car):  def __init__(self, name):  super().__init__(name)  myTesla = Elastic('tesla') print(myTesla.name)  複製代碼

36 class實例

class Car():
 def __init__(self,make,name,color):  self.make = make  self.name = name  self.color = color   def getCarName(self):  print('獲取車的名字爲'+self.name+'獲取汽車的顏色'+self.color)  class Batery():  def __init__(self,batery='60'):  self.batery = batery   def discribe_batery(self):  print('This car has'+str(self.batery)+'batery')  class Elatrity(Batery):  def __init__(self, batery):  super().__init__(batery)  self.batery = Batery()  elatrity = Elatrity('100') print(elatrity.discribe_batery()) 複製代碼

37 文件和異常

f = open('file.txt',mode="w",encoding='utf-8')
print(f) f.write('叫我詹躲躲\n') f.write('叫我詹躲躲1\n') f.close()  複製代碼

38 將數據存入json文件

import json
numbers = [1,2,23,3,4,5,6,7,87]  filename = 'numbers.json' with open(filename,'w') as f_obj:  json.dump(numbers,f_obj)  複製代碼

39 保存和讀取用戶生成的數據

import json
username = input('存儲輸入的數據')  filename = 'numbers.json' with open(filename,'w') as f_obj:  json.dump(username,f_obj)  複製代碼

40 讀取用戶輸入的信息

import json
filename = 'numbers.json' with open(filename) as f_obj:  username = json.load(f_obj)  print('Welcome back',username)  複製代碼

41 輸入和合並數據

import json
filename = 'numbers.json' try:  with open(filename) as f_obj:  username = json.load(f_obj) except FileNotFoundError:  username = input('存儲輸入的數據')  with open(filename,'w') as f_obj:  json.dump(username,f_obj) else:  print('Welcome back',username)  複製代碼

42 封裝成爲一個函數

import json
def get_username():  filename = 'numbers.json'  try:  with open(filename) as f_obj:  username = json.load(f_obj)  except FileNotFoundError:  return None  else:  return username def get_greeting():  username = get_username()  if username:  print('Welcome back',username)  else:  username = input('存儲輸入的數據')  filename = 'numbers.json'  with open(filename,'w') as f_obj:  json.dump(username,f_obj)  print('Welcome back',username)  get_greeting() 複製代碼

43 文件讀取

f = open('index.txt',encoding='utf-8')
s = f.read() print(s) f.close() 複製代碼

44 文件寫入

f = open('index.txt',mode="w",encoding='utf-8')
f.write('叫我詹躲躲n') f.write('叫我詹躲躲1n') f.close() 複製代碼

43 第三方庫安裝和使用

import random
random.randint() #隨機數 import jieba #結巴 import wordcloud #詞雲  jieba.lcut('分割中文詞語的序列') #分割中文詞語的序列 word_cloud = wordCloud(font_path='msyh.ttc').generate('分割中文詞語') #生成詞雲對象 word_cloud.to_file('123.png') #保存到圖片 複製代碼

44 python 裏面的類和對象

#面向對象編程
class Person:  def __init__(self,name,sex,birthday):  self.name = name  self.sex = sex  self.birthday = birthday  def say(self,word):  print(f'{self.name}說:"{word}"')  zhang_san = Person('張三','男','2020202') zhang_san.say('12121') 複製代碼

45.輸出 %佔位符

lastname = 'hello'
firstname = 'world' print('個人名字是%s %s' %(lastname,firstname)) 複製代碼

46.經常使用的格式化字符

%c #字符
%s #經過str來格式化 %i #有符號十進制整數 %d #有符號十進制整數 %u #無符號十進制整數 %o #八進制整數 %x #十六進制整數(小寫字母) %e #索引符號(小寫e) %E #索引符號(大寫E) %f #浮點實數 %g #%f和%e的簡寫 %G #%f和%E的簡寫 複製代碼

47 格式化的其餘方式 format

name = '老夫子'
age = 28 print('姓名:{},年齡{}'.format(name,age)) #姓名:老夫子,年齡28  複製代碼

48 .匿名函數

48.1lambda 參數1,參數2,參數3:表達式

#特色:
#1.使用lambda關鍵字建立函數 #2.沒有名字的函數 #3.匿名函數冒號後面的表達式有且只有一個,是表達式不是語句 #4.自帶return  複製代碼

48.2.lambda 示例1

def computer(x,y):
 #計算兩數和  return x+y  M = lambda x,y:x+y print(M(1,2)) 複製代碼

48.3.lambda 示例1

result = lambda a,b,c:a*b*c
print(result(12,121,1)) 複製代碼

48.4 lambda 三元表達式模擬

age = 15
print('能夠參軍' if age>18 else '繼續上學')  #直接調用 result = (lambda x,y:x if x>y else y)(2,5) 複製代碼

49.遞歸函數

#階乘函數
def factorial(n):  if n==1:  return 1  else:  return n*factorial(n-1)  pass  print(factorial(3)) 複製代碼

49.1 遞歸案例 模擬實現 樹形結構的遍歷

import os 文件操做模塊
def findFile(file_path):  listRs = os.listdir(file_path) 獲得該路徑全部的文件夾  for fileItem in listRs:  full_path = os.path.join(file_path,fileItem)  if os.path.isdir(full_path): 判斷是否爲文件夾  findFile(full_path)  else:  print(fileItem)  pass  pass  else:  return findFile('F:\\7.代碼學習') 複製代碼

50.python的內置函數

abs(-27) #絕對值
round(21.1123) #浮點近似值 pow(2,3) #冪 2**3 divmod(10,3) # 商餘 max(1,2,3,4) #最大值 min(1,2,3,4) #最小值 sum(1,2,3,4) #求和 eval() #動態執行表達式 複製代碼

51.類型轉換函數

int #整型
float #浮點型 str #字符類型 ord #返回對應字符的ASCII chr #數字轉字符 ASCII bool #boolean bin # 轉換二進制 hex #轉換爲十六進制 oct #八進制 list #元祖轉列表 tuple #元祖 dict #建立字典 bytes #轉爲字節  複製代碼

52.可迭代參數 all

#all 用於斷定給定的可迭代參數中的全部元素是否都爲TRUE,若是是返回TRUE,不然返回FALSE,除了0,空,False 外都算TRUE
 def all(iterable):  for ele in iterable:  if not ele:  return False  return True  li = [1,2,3,4,5,6,False] print(all(li)) ##False 複製代碼

53 可迭代參數 any

#所有爲false,返回false
def any(iterable):  for ele in iterable:  if ele:  return False  return True  li = [0,False,''] print(any(li)) ##False  複製代碼

54.enumerate 列出遍歷數據和下標

li = ['a','b','c']
for index,item in enumerate(li,7):  print(index,item)  #改下標 7 a 8 b 9 c 複製代碼

55.set集合 不支持索引和切片,無序不重複

55.1.建立集合1

set1 = {'1','2'}
set2 = {'11','1'} #添加 add set1.add('3')  #清空 clear() set1.clear()  #取差集 difference set1.difference(set2) ##set1取set1中有的  #取交集 set1.intersection(set2)  #取並集 set1.union(set2) set1 | set2  #末尾移除 set1.pop()  #指定移除 set1.discard(3)  #更新 update 合併一塊兒去重 set1.update(set2) 複製代碼

55.2 練習題1 三組數據求和

1-10,20-3035-40
def threeSum(a1,a2,a3):  return sum(a1+a2+a3)  a1 = list(range(1,11)) a2 = list(range(20,31)) a3 = list(range(35,41)) print(threeSum(a1,a2,a3)) 複製代碼

55.3練習題2 大小和尚多少個

def computers():
 for i in range(1,101):  for j in range(1,34):  if i+j==100 and 3*j+i/3 ==100:  print('大和尚有{}個,小和尚有{}個'.format(j,i))  pass computers()  #大和尚有25個,小和尚有75個 複製代碼

55.4 練習題3 找出獨一無二的數據

li = [1,1,1,2,2,2,2,3,2,2,3,4,2,1,1]
def findUnionNumber(li):  for item in li:  if li.count(item)==1:  return item  pass print(findUnionNumber(li)) 複製代碼

56.字典統計每一個元素的次數

dict ={}
for key in li:  dict[key] = dict.get(key,0)+1 print(dict)  複製代碼

56.1.collection包下Counter類統計

from collections import Counter
a = [1, 2, 3, 1, 1, 2] result = Counter(a) print(result) 複製代碼

56.2.pandas包下的value_counts方法統計

import pandas as pd
a = pd.DataFrame([[1,2,3],  [3,1,3],  [1,2,1]]) result = a.apply(pd.value_counts) print(result) 複製代碼

56.3.利用set找出獨一無二的數據

li = [1,2,3,3,2,3,4,4,5,1,2,1]
def uniqueNum(li):  set1 = set(li)  for i in set1:  li.remove(i)  set2 = set(li)   for j in set2:  set1.remove(j)  return set1  print(uniqueNum(li)) 複製代碼

57 面向對象編程 oop

#面向過程編程 根據業務從上到下開始編程
#類的結構 #類名 屬性 方法  class People:  name = 'zhan',  age = 20,  def eat(self):  print('正在吃飯')  #建立對象 people = People() people.eat() 複製代碼

在類的內部,使用def定義的爲實例方法,第一個參數爲self,實例方法歸實例全部web

57.1 類的實例屬性添加

class People:
 name = 'zhan',  age = 20,  def eat(self):  print('正在吃飯')  #建立對象 people = People() people.eat()  #添加屬性 people.name2 = 'zhan' people.age2 = 22 複製代碼

57.2 類的__init__()方法

class People:
 # 初始化的操做,實例屬性,自動執行  def __init__(self):  self.name = 'zhan'  self.age = 20   def eat(self):  print('正在吃飯')  #建立對象 people = People() people.eat() 複製代碼

57.3 類的__init__()使用參數

class People:
 # 初始化的操做,實例屬性,自動執行  def __init__(self, name, age):  self.name = name  self.age = age   def eat(self,food):  print(self.name+food)  #建立對象 people = People('叫我詹躲躲', 20) people.eat('正在吃飯') people.eat('洗澡') people.eat('跑步')  複製代碼

57.4 理解類的self

#相似於js裏面的this
class Person:  def eat(self):  print(id(self))  pass  pass  person = Person() person.eat() print(id(person))  #self和對象指向同一個內存地址,self就是對象的引用 # <__main__.Person object at 0x0000020864815CC0>  複製代碼

58 魔術方法

#__init__ :初始化實例屬性
# __str__ :自定義對象的格式 # __new__ :對象實例化  class Animal:  def __str__(self):  return '3213213123123'  pass  pass animal = Animal() print(animal)   class Animal:  def __str__(self):  return '3213213123123'  pass  pass   def __new__(cls,*args,**kwargs):  print("----new執行---")  return object.__new__(cls) 真正建立對象實例的  pass  animal = Animal() print(animal)   #__new__ 和__init__的區別  #__new__ 類的實例化方法,必須返回實例,不然建立不成功 #__init__數據屬性的初始化工做,認爲是實例的構造方法,接受實例化self並對其進行構造 #__new__ 至少一個參數是cls,表明要實例化的類 #__new__ 執行要比__init__早 複製代碼

59 案例練習 —— 決戰紫禁之巔

# 屬性:
# name:玩家名稱 # blood:血量  # 方法: # tong() 捅一刀,掉10滴血 # kanren() 砍一刀掉15滴血 # chiyao() 補血10滴血 # __str__打印玩家的狀態  class Role:  def __init__(self,name,blood):  self.name = name  self.blood = blood  pass   砍人  def tong(self,enemy):  enemy.blood -=10  info = '【%s】捅了【%s】一刀'%(self.name,enemy.name)  print(info)  pass   砍人  def kanren(self,enemy):  enemy.blood -=15  info = '【%s】砍了【%s】一刀'%(self.name,enemy.name)  print(info)  pass   吃藥  def chiyao(self):  self.blood +=10  info = '【%s】吃了一口藥,增長10滴血'%(self.name)  print(info)  pass  def __str__(self):  return '%s還剩下%s的血量'%(self.name,self.blood)  xmcx = Role('西門吹雪',100) ygc = Role('葉孤城',100)  while True:  if xmcx.blood<=0 or ygc.blood<=0:  break   print('*********************')  xmcx.tong(ygc)  xmcx.kanren(ygc)  print('*********************')  ygc.tong(xmcx)  ygc.chiyao()  print('*********************')  print(xmcx)  print(ygc)  """ ********************* 【西門吹雪】捅了【葉孤城】一刀 【西門吹雪】砍了【葉孤城】一刀 ********************* 【葉孤城】捅了【西門吹雪】一刀 【葉孤城】吃了一口藥,增長10滴血 ********************* 西門吹雪還剩下50的血量 葉孤城還剩下25的血量 ********************* 【西門吹雪】捅了【葉孤城】一刀 【西門吹雪】砍了【葉孤城】一刀 ********************* 【葉孤城】捅了【西門吹雪】一刀 【葉孤城】吃了一口藥,增長10滴血 ********************* 西門吹雪還剩下40的血量 葉孤城還剩下10的血量 ********************* 【西門吹雪】捅了【葉孤城】一刀 【西門吹雪】砍了【葉孤城】一刀 ********************* 【葉孤城】捅了【西門吹雪】一刀 【葉孤城】吃了一口藥,增長10滴血 ********************* 西門吹雪還剩下30的血量 葉孤城還剩下-5的血量 """ 複製代碼

60 實例練習1 水果類

class Fruit:
 def __init__(self,name,color):  self.name = name  self.color = color  def showColor(self):  print('%s的顏色爲%s'%(self.name,self.color))  apple = Fruit('蘋果','紅色').showColor() orange = Fruit('橘子','黃色').showColor() watermelen = Fruit('西瓜','綠色').showColor() 複製代碼

61 驗證self 就是實例自己

class CkeckSelf:
 def __str__(self):  print(id(self))  pass  CkeckSelf().__str__() selfObj = CkeckSelf() print(id(selfObj)) 複製代碼

62 定義animal類,輸出全部的屬性

class Animal:
 def __init__(self, color, name, age):  self.color = color  self.name = name  self.age = age   def run(self):  print('%s在跑步'%(self.name))  pass   def eat(self):  print('%s在吃東西' %(self.name))  pass   def __str__(self):  return '%s歲的%s的%s'%(self.age,self.color,self.name)  cat = Animal('黑色','小貓',2) dog = Animal('白色','小狗',3) cat.run() dog.run()  print(cat) print(dog) """ 小貓在跑步  小狗在跑步  2歲的黑色的小貓  3歲的白色的小狗 """ 複製代碼

64 簡易的學生管理系統

1、顯示全部學生信息
2、新建學生信息 3、查詢學生信息 4、修改學生信息 5、刪除學生信息 0、退出系統 複製代碼
student_data = [
 {  'id': 123456,  'name': 'Tom',  'sex': '男',  'address': '迪士尼'  },  {  'id': 123457,  'name': 'Jerry',  'sex': '女',  'address': '倫敦'  }, ] 複製代碼

64.1美化顯示

def beauty_list(datas):
 for index, student in enumerate(datas):  print(f'序號:{index}', end="t")  print(f'姓名:{student["name"]}', end="t")  print(f'性別:{student["sex"]}', end="t")  print(f'地址:{student["address"]}') 複製代碼

64.2輸入名字

def input_name():
 while True:  name = input('輸入名字:').strip()  if name:  return name  else:  continue 複製代碼

64.3選擇性別

def choose_sex():
 print('1(男) | 2(女)')  n = input('選擇性別')  if n == '1':  return '男'  else:  return '女' 複製代碼

64.4顯示全部學生信息

def show_all():
 beauty_list(student_data) 複製代碼

64.5新建學生信息

def create_student():
 sid = random.randint(1000, 10000)  name = input_name()  sex = choose_sex()  address = input('地址:')  student = {  'id': sid,  'name': name,  'sex': sex,  'address': address  }   student_data.append(student) 複製代碼

64.6查詢學生信息

def find_student():
 name = input_name()  for i in student_data:  if i['name'] == name:  print(i)  return  else:  print('無該學生任何信息') 複製代碼

64.7修改學生信息

def edit_student():
 name = input_name()  for student in student_data:  if student['name'] == name:  print(student)  student['name'] = input_name()  student['sex'] = choose_sex()  student['address'] = input('地址:')  return  else:  print('查無此人') 複製代碼

64.8刪除學生信息

def delete_student():
 name = input_name()  for student in student_data:  if student['name'] == name:  student_data.remove(student)  return  else:  print('查無此人')  while True:  print('''  ********************  歡迎使用學生管理系統  一、顯示全部學生信息  二、新建學生信息  三、查詢學生信息  四、修改學生信息  五、刪除學生信息  0、退出系統  ********************   '''  )   op = input('請輸入序號:')  if op == '1':  print(student_data)  show_all()  elif op == '2':  create_student()  elif op == '3':  find_student()  elif op == '4':  edit_student()  elif op == '5':  delete_student()  else:  print('退出系統')  break 複製代碼

本文使用 mdnice 排版編程

原創:叫我詹躲躲 來源:掘金 連接:juejin.im/post/5f05e1…json

相關文章
相關標籤/搜索