1.Python基础

序言

随着AI人工智能的兴起,没有理由不赶紧学习起来了,之后我会把学习唐宇迪老师的系列课程以笔记的形式进行分享。废话不多说,那就从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))
==============输出结果==============
<class 'int'>
<class 'str'>
<class 'float'>
<class 'bool'>
===================================

4.类型转换
#int转string
  str_eight = str(8)
#string转int ,注意必须是可以转成功的值,如果是"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)
==============输出结果==============
20
10000
100
===================================

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

*join:连接字符串,会与字符串中的每个字符元素进行一次拼接
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**************
通过[]来创建一个list结构
里面放任何类型都可以的,没有一个长度限制
1.申明、复制
months = []
print (type(months))
print (months)
months.append("January")
months.append("February")
print (months)
==============输出结果==============
<class 'list'>
[]
['January', 'February']
===================================

2.根据索引取值
temps = ["China", 122.5, "India", 124.0, "United States", 134.1]
one = temps[0]
print(one)
last = temps[-1]
print(two)
==============输出结果==============
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区间值
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul"]
# 取前不取后
two_four = months[2:4]
print (two_four)
==============输出结果==============
['Mar', 'Apr']
===================================
three_six = months[3:]
print (three_six)
==============输出结果==============
['Apr', 'May', 'Jun', 'Jul']
===================================

5.删除某个值del listname[i]
6.判断list中是否有某个值 listname in a 返回一个bool类型
7.计数listname.count()
8.查看索引值listname.index('name')
9.插入listname.insert(2,'name')
10.删除指定值listname.remove('name')
11.从小到达排序listname.sort()
12.对称位置互换listname.reverse()

************tuple**************
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不
能修改,此处的不能修改表示的是最初指定的指向不能进行修改,比如最初定义了
一个叫students的list,就一定得是这个list,但是list本身是可以改变的。
定一个学生元组:
students = ('tom', 'jack', ['liu','zhang','li'])
students[0] = 'lucy'---此处是不可以修改的
students[2][0]='wang'----这种修改操作是可行的

students这个tuple确定了就不能进行修改了,它也没有insert()和append()
这样的方法。其他获取元素的方法和list是一样的,你可以正常地使用
students[0],students[-1],但不能赋值成另外的元素。

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。
如果可能,能用tuple代替list就尽量用tuple。


三、循环结构

1.for循环
cities = ["Austin", "Dallas", "Houston"]
for city in cities:
    #注意此处是以四个空格或者一个tab作为与for的关联
    print(city)
#此处便与for没有关系
print ('123')
==============输出结果==============
Austin
Dallas
Houston
123
===================================

2.嵌套for循环
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)
==============输出结果==============
['Austin', 'Dallas', 'Houston']
['Haerbin', 'Shanghai', 'Beijing']
Austin
Dallas
Houston
Haerbin
Shanghai
Beijing
===================================

3.while循环
i = 0
while i < 3:
    i += 1
    print (i)
==============输出结果==============
1
2
3
===================================

四、判断结构

number = 6
temp = (number > 5)
if temp:                    
    print(1)
else:
    print(0)
==============输出结果==============
1
===================================

五、字典模式

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

==============输出结果==============
<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)
==============输出结果==============
{'Tom': 60, 'Jim': 70}
{'Tom': 60, 'Jim': 70}
===================================

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

六、函数

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

==============输出结果==============
hello python
3
===================================

七、set集合

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,
在set中,没有重复的key,主要用于保留唯一的那些元素。

set:一个无序和无重复元素的集合

定义: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才有进行添加,一次只能添加一个值
5.一次更新多个值进去,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
  倒入之后便可以随意的调用脚本文件中的变量或者函数了
  tg.tang_v   tg.tang_add(tang_list)

*直接倒入某个变量或者函数
from tang import tang_v,tang_add

*倒入所有变量或者函数
from tang import *

*删除该脚本,需要倒入一个系统的os库
import os
os.remove('tang.py')
#当前路径
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.写入文件-覆盖式的写入
#文件可以不存在,没有会自动创建
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文件,如果不想手动关闭文件可以使用with
with open('tang_write.txt','w') as f:
f.write('jin tian tian qi bu cuo')

十一、类

class people:
    '帮助信息:XXXXXX'
    #所有实例都会共享
    number = 100
    #构造函数,初始化的方法,当创建一个类的时候,首先会调用它
    #self是必须的参数,调用的时候可以不传
    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)

创建实例
p1 = people('yi',30)
p1.name

*判断是否有该对象的属性hasattr(p1,'name')
*获取对象中的某个属性值getattr(p1,'name')
*设置对象中的某个属性值setattr(p1,'name','yudiTang')
*删除对象中的某个属性值delattr(p1,'name')

十二、时间

*打印时间戳
import time
print (time.time())

*数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的
struct_time会因为时区不同而不同
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))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容