1.Python基础

作者: 瓦雷 | 来源:发表于2017-12-20 10:58 被阅读61次

    序言

    随着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))
    

    相关文章

      网友评论

        本文标题:1.Python基础

        本文链接:https://www.haomeiwen.com/subject/jucbwxtx.html