1.Python基礎(chǔ)

序言

隨著AI人工智能的興起梢杭,沒有理由不趕緊學(xué)習(xí)起來了,之后我會把學(xué)習(xí)唐宇迪老師的系列課程以筆記的形式進(jìn)行分享秸滴。廢話不多說武契,那就從python開始AI之旅吧

一、變量

1.申明變量,無需申明變量類型荡含,無需分號
int_test = 365
str_test = "2月"
float_test = 122.5
bool_test = True

2.輸出
print(day)

3.判斷變量類型
print(type(int_test))
print(type(str_test))
print(type(float_test))
print(type(bool_test))
==============輸出結(jié)果==============
<class 'int'>
<class 'str'>
<class 'float'>
<class 'bool'>
===================================

4.類型轉(zhuǎn)換
#int轉(zhuǎn)string
  str_eight = str(8)
#string轉(zhuǎn)int 咒唆,注意必須是可以轉(zhuǎn)成功的值,如果是"test"將會報錯
  str_eight = "8"
  int_eight = int(str_eight)

5.運算
china=10
united_states=100
china_plus_10 = china + 10
us_times_100 = united_states * 100
print(china_plus_10)
print(us_times_100)
print (china**2)
==============輸出結(jié)果==============
20
10000
100
===================================

6.字符串的常用操作
 *split:分隔符,會將字符串分割成一個list
 yi = '1 2 3 4 5'
 yi.split()

*join:連接字符串,會與字符串中的每個字符元素進(jìn)行一次拼接
yi = '1,2,3,4,5'
yi_str = '#'
yi_str.join(yi)

*replace:字符替換
yi = 'hello python'
yi.replace('python','world')

*字符串大寫:upper()
*字符串小寫:lower()

*去除空格
去除左右空格strip()
去除左空格lstrip()
去除右空格rstrip()

*字符賦值
'{} {} {}'.format('liu','yi','s')
'{2} {1} {0}'.format('liu','yi','s')
'{liu} {yi} {s}'.format(liu = 10, yi =5, s = 1)

二释液、List列表和tuple元組

************list**************
通過[]來創(chuàng)建一個list結(jié)構(gòu)
里面放任何類型都可以的全释,沒有一個長度限制
1.申明、復(fù)制
months = []
print (type(months))
print (months)
months.append("January")
months.append("February")
print (months)
==============輸出結(jié)果==============
<class 'list'>
[]
['January', 'February']
===================================

2.根據(jù)索引取值
temps = ["China", 122.5, "India", 124.0, "United States", 134.1]
one = temps[0]
print(one)
last = temps[-1]
print(two)
==============輸出結(jié)果==============
China
134.1
===================================

3.獲取List長度
int_months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
length = len(int_months) 

4.獲取List區(qū)間值
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul"]
# 取前不取后
two_four = months[2:4]
print (two_four)
==============輸出結(jié)果==============
['Mar', 'Apr']
===================================
three_six = months[3:]
print (three_six)
==============輸出結(jié)果==============
['Apr', 'May', 'Jun', 'Jul']
===================================

5.刪除某個值del listname[i]
6.判斷l(xiāng)ist中是否有某個值 listname in a 返回一個bool類型
7.計數(shù)listname.count()
8.查看索引值listname.index('name')
9.插入listname.insert(2,'name')
10.刪除指定值listname.remove('name')
11.從小到達(dá)排序listname.sort()
12.對稱位置互換listname.reverse()

************tuple**************
另一種有序列表叫元組:tuple误债。tuple和list非常類似浸船,但是tuple一旦初始化就不
能修改,此處的不能修改表示的是最初指定的指向不能進(jìn)行修改,比如最初定義了
一個叫students的list寝蹈,就一定得是這個list李命,但是list本身是可以改變的。
定一個學(xué)生元組:
students = ('tom', 'jack', ['liu','zhang','li'])
students[0] = 'lucy'---此處是不可以修改的
students[2][0]='wang'----這種修改操作是可行的

students這個tuple確定了就不能進(jìn)行修改了箫老,它也沒有insert()和append()
這樣的方法封字。其他獲取元素的方法和list是一樣的,你可以正常地使用
students[0],students[-1]阔籽,但不能賦值成另外的元素流妻。

不可變的tuple有什么意義?因為tuple不可變笆制,所以代碼更安全合冀。
如果可能,能用tuple代替list就盡量用tuple项贺。


三、循環(huán)結(jié)構(gòu)

1.for循環(huán)
cities = ["Austin", "Dallas", "Houston"]
for city in cities:
    #注意此處是以四個空格或者一個tab作為與for的關(guān)聯(lián)
    print(city)
#此處便與for沒有關(guān)系
print ('123')
==============輸出結(jié)果==============
Austin
Dallas
Houston
123
===================================

2.嵌套for循環(huán)
cities = [["Austin", "Dallas", "Houston"],['Haerbin','Shanghai','Beijing']]
#print (cities)
for city in cities:
    print(city)
    
for i in cities:
    for j in i:
        print (j)
==============輸出結(jié)果==============
['Austin', 'Dallas', 'Houston']
['Haerbin', 'Shanghai', 'Beijing']
Austin
Dallas
Houston
Haerbin
Shanghai
Beijing
===================================

3.while循環(huán)
i = 0
while i < 3:
    i += 1
    print (i)
==============輸出結(jié)果==============
1
2
3
===================================

四峭判、判斷結(jié)構(gòu)

number = 6
temp = (number > 5)
if temp:                    
    print(1)
else:
    print(0)
==============輸出結(jié)果==============
1
===================================

五开缎、字典模式

字典是以key value的形式進(jìn)行存儲,key必須保持唯一性
scores = {} 
print (type(scores))
scores["Jim"] = 80
scores["Sue"] = 85
scores["Ann"] = 75
#print (scores.keys())
print (scores)
print (scores["Sue"])

==============輸出結(jié)果==============
<class 'dict'>
{'Jim': 80, 'Sue': 85, 'Ann': 75}
85
===================================

2種初始化值的方式:
students = {}
students["Tom"] = 60
students["Jim"] = 70
print (students)

students = {
    "Tom": 60,
    "Jim": 70
}
print (students)
==============輸出結(jié)果==============
{'Tom': 60, 'Jim': 70}
{'Tom': 60, 'Jim': 70}
===================================

3.打印所有key值dict.keys()
4.打印所有value值dict.values()
5.打印所有的key林螃,value值dict.items()

六奕删、函數(shù)

def printHello():
    print ('hello python')
   
def add(a,b):
    return a+b
    
printHello()
print (add(1,2))

==============輸出結(jié)果==============
hello python
3
===================================

七、set集合

set和dict類似疗认,也是一組key的集合完残,但不存儲value。由于key不能重復(fù)横漏,所以谨设,
在set中,沒有重復(fù)的key缎浇,主要用于保留唯一的那些元素扎拣。

set:一個無序和無重復(fù)元素的集合

定義:yi = set(['11','121','12313','11'])
     type(yi)

1.取并集a.union(b) 或a|b
2.取交集a.intersection(b) 或a&b
3.取差異值a.difference(b),差異出的是b中沒有的值,或者a-b
4.往集合中加值素跺,setname.add(value)二蓝,如果set中沒有value才有進(jìn)行添加,一次只能添加一個值
5.一次更新多個值進(jìn)去,setname.update([1,2,3])
5.刪除某個值指厌,setname.remove(value)
6.彈出第一個值setname.pop(),也就是刪除第一個值

八刊愚、模塊與包

* 編寫一個腳本寫入到本地
  %%writefile tang.py

  tang_v = 10

  def tang_add(tang_list):
    tang_sum = 0
    for i in range(len(tang_list)):
        tang_sum += tang_list[i]
    return tang_sum
  tang_list = [1,2,3,4,5]
  print (tang_add(tang_list))

* 運行該腳本:%run tang.py

* 倒入該腳本并取一個別名import tang as tg
  倒入之后便可以隨意的調(diào)用腳本文件中的變量或者函數(shù)了
  tg.tang_v   tg.tang_add(tang_list)

*直接倒入某個變量或者函數(shù)
from tang import tang_v,tang_add

*倒入所有變量或者函數(shù)
from tang import *

*刪除該腳本,需要倒入一個系統(tǒng)的os庫
import os
os.remove('tang.py')
#當(dāng)前路徑
os.path.abspath('.')

九踩验、異常處理

基本用法:
try:
    1/0
except ValueError:
        print ('ValueError: input must > 0')
except ZeroDivisionError:
        print ('log(value) must != 0')
except Exception:
        print ('ubknow error')
finally:
    print ('finally')

自定義異常類:
class TangError(ValueError):
    pass

cur_list = ['tang','yu','di']
while True:
    cur_input = input()
    if cur_input not in cur_list:
        raise TangError('Invalid input: %s' %cur_input)

十鸥诽、文件處理

1.文件讀取
#文件必須存在
f = open("test.txt", "r")

g = f.read()
print(g)
#讀完記得close
f.close()

2.寫入文件-覆蓋式的寫入
#文件可以不存在,沒有會自動創(chuàng)建
f = open("test_write.txt", "w")
f.write('123456')
f.write('\n')
f.write('234567')
f.close()

3.添加式的寫入
txt = open('tang_write.txt','a')

3.上述的方法都需要手動close文件箕憾,如果不想手動關(guān)閉文件可以使用with
with open('tang_write.txt','w') as f:
f.write('jin tian tian qi bu cuo')

十一衙传、類

class people:
    '幫助信息:XXXXXX'
    #所有實例都會共享
    number = 100
    #構(gòu)造函數(shù),初始化的方法厕九,當(dāng)創(chuàng)建一個類的時候蓖捶,首先會調(diào)用它
    #self是必須的參數(shù),調(diào)用的時候可以不傳
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def display(self):
        print ('number = :',people.number)
    def display_name(self):
        print (self.name)

創(chuàng)建實例
p1 = people('yi',30)
p1.name

*判斷是否有該對象的屬性hasattr(p1,'name')
*獲取對象中的某個屬性值getattr(p1,'name')
*設(shè)置對象中的某個屬性值setattr(p1,'name','yudiTang')
*刪除對象中的某個屬性值delattr(p1,'name')

十二扁远、時間

*打印時間戳
import time
print (time.time())

*數(shù)組的形式表示即(struct_time),共有九個元素俊鱼,分別表示刻像,同一個時間戳的
struct_time會因為時區(qū)不同而不同
time.localtime(time.time())

*格式化時間
time.asctime(time.localtime(time.time()))

*自定義格式化類型的時間
time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

*日歷
import calendar
print (calendar.month(2017,11))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市并闲,隨后出現(xiàn)的幾起案子细睡,更是在濱河造成了極大的恐慌,老刑警劉巖帝火,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溜徙,死亡現(xiàn)場離奇詭異,居然都是意外死亡犀填,警方通過查閱死者的電腦和手機(jī)蠢壹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來九巡,“玉大人图贸,你說我怎么就攤上這事∶峁悖” “怎么了疏日?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長撒汉。 經(jīng)常有香客問我沟优,道長,這世上最難降的妖魔是什么睬辐? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任净神,我火速辦了婚禮,結(jié)果婚禮上溉委,老公的妹妹穿的比我還像新娘鹃唯。我一直安慰自己,他們只是感情好瓣喊,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布坡慌。 她就那樣靜靜地躺著,像睡著了一般藻三。 火紅的嫁衣襯著肌膚如雪洪橘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天棵帽,我揣著相機(jī)與錄音熄求,去河邊找鬼。 笑死逗概,一個胖子當(dāng)著我的面吹牛弟晚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼卿城,長吁一口氣:“原來是場噩夢啊……” “哼枚钓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瑟押,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤搀捷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后多望,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫩舟,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年怀偷,在試婚紗的時候發(fā)現(xiàn)自己被綠了家厌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡枢纠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出黎棠,到底是詐尸還是另有隱情晋渺,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布脓斩,位于F島的核電站木西,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏随静。R本人自食惡果不足惜八千,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望燎猛。 院中可真熱鬧恋捆,春花似錦立镶、人聲如沸巡通。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萄凤。三九已至祖很,卻和暖如春蛙讥,著一層夾襖步出監(jiān)牢的瞬間坎藐,已是汗流浹背候醒。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工能颁, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人倒淫。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓伙菊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子占业,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容