为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
初识Python_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

初识Python

廖雪峰 移动开发工程师
难度入门
时长 5小时 0分
  • if-elif-else 条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了。

    查看全部
  • print u'中文'
    中文

    查看全部
  • 如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

    类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。


    查看全部
  • 1*8(2)+2*8(2)+3*8(0)=83
    查看全部
  • x%2==0 表示x/2的余数为0

    查看全部
  • 如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

    # -*- coding: utf-8 -*-

    目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。


    查看全部
  • \n 表示换行
    \t 表示一个制表符
    \\ 表示 \ 字符本身


    查看全部
  • # list是一种有序的集合,可以随时添加和删除其中的元素
    test = [1, 2, 'yanglibao', True, False, 1.23456, ]  # Python是动态语言,所以list中的元素并不要求都必须是同一种数据类型
    # print(test)
    # 一个元素也没有的list,就是空list
    empty_list = []
    # print(empty_list)
    # list索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。使用索引时,千万注意不要越界。
    # list倒序索引也不要越界
    # append()总是把新的元素添加到 list 的尾部。
    test.append('happy')
    # print(test)
    # insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素
    test.insert(0, 'frist')  # 原来索引为 0 的元素,以及后面的所有元素,都自动向后移动一位。
    # print(test)
    # pop()方法总是删掉list的最后一个元素,并且它还返回这个元素
    test.pop()
    # print(test)
    # print(test.pop())
    # print(test.pop(0))  # pop中参数为索引删除
    # 对list中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。
    test[-1] = 'love'
    # print(test)
    
    # 元组:tuple一旦创建完毕,就不能修改了。
    tuple_test = (1, 2.3, 'yanglibao')
    # print(tuple_test[2])  # 可以访问
    # tuple_test[0]=5   #不能赋值成别的元素
    # print(tuple_test)
    empty_tuple = ()
    # print(empty_tuple)
    tuple_test1 = (1)
    # print(tuple_test1)  # 因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
    tuple_test2 = (1,)
    # print(tuple_test2)  # 正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义
    tuple_test3 = (1, 2)
    # print(tuple_test3)  # 多元素 tuple 加不加这个额外的“,”效果是一样的:
    
    # “可变”的tuple
    list_change = ['yanglibao', 1, 1, 2, 3]
    tuple_change = (1, 2, list_change)
    # print(tuple_change)
    list_change.pop()
    # print(tuple_change)
    # 要创建一个内容也不变的tuple,那就必须保证tuple的每一个元素本身也不能变。
    
    # if-else语句
    test = 'yanglibao'
    if test == 'yanglibao':
        '''print('yes')'''
    else:
        ''' print('no')'''
    # if-elif-else
    test = 1
    # if test>0:
    #     print('大于0')
    # elif test<0:
    #     print('小于0')
    # else:
    #     print('等于0')
    
    # for循环语句
    test = [1, 2, 3, 4, 5, 6]
    # for x in test: #遍历list
    #     print(x)
    
    # while循环语句
    x = 0
    # while test[x]<4:
    #     print(test[x])
    #     x+=1
    
    # break跳出循环
    x = 0
    # while True:
    #     x+=1;
    #     print(x)
    #     if x>5:
    #         break
    
    # continue继续循环
    x = 0
    # while x < 10:
    #     x += 1
    #     if x % 2 == 0:
    #         print(x)
    #     else:
    #         continue
    
    # 花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
    # dict就是通过 key 来查找 value。
    d = {
        'a': 'boy',
        'b': 'girl'
    }
    # print(len(d))  # 由于dict也是集合,len() 函数可以计算任意集合的大小:
    # print(d['a'])  # 使用 d[key] 的形式来查找对应的 value
    # print(d.get('b'))  # 使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None
    # print(d.get('c'))
    
    # dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。
    # 而list的查找速度随着元素增加而逐渐下降。
    # 不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,
    # list正好相反,占用内存小,但是查找速度慢。
    
    # dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样
    
    # dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。
    # 但是list是可变的,就不能作为 key。
    
    # 更新dict
    d['c'] = 'girl'  # 赋值语句可以添加新元素
    # print(d)
    d['a'] = 'gril'
    # print(d)  # 赋值语句可以更改已有key的value
    
    # 遍历dict
    # for mark in d:
    # print(mark,':',d[mark])#由于通过 key 可以获取对应的 value,因此,在循环体内,可以获取到value的值。
    
    # python中的set:持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像
    s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
    # print(s)  # 打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。
    s = set(['Adam', 'Lisa', 'Bart', 'Paul', 'Adam'])  # set不能包含重复的元素
    # print(len(s), ';', s)  # set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。
    
    # 由于set存储的是无序集合,所以我们没法通过索引来访问。
    # 访问 set中的某个元素实际上就是判断一个元素是否在set中。
    # print('Adam'in s)
    # print('a'in s)
    
    # set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
    # set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
    # set存储的元素也是没有顺序的。
    x = 'Monday'
    # if x == 'Monday' or 'Tuesday' or 'Wednesday' or 'Thursday' or 'Friday' or 'Saturday' or 'Sunday':
    #     print('input is ok')
    # else:
    #     print('input is error')
    
    # set 遍历
    s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
    # for mark in s:
    #     print(mark[0],':',mark[1])
    
    # 由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:
    # 一是把新的元素添加到set中,二是把已有元素从set中删除。
    s = set([1, 2, 3])
    s.add(4)  # 添加元素时,用set的add()方法
    # print(s)
    s.add(3)  # 如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了
    # print(s)
    s.remove(4)  # 删除set中的元素时,用set的remove()方法
    
    
    # s.remove(4)#如果删除的元素不存在set中,remove()会报错
    # print(s)
    
    # 在交互式命令行通过 help(abs) 查看abs函数的帮助信息。
    # help(abs)
    
    # 函数
    def my_fabs(x):
        if (x >= 0):
            return x
        else:
            return -x
    
    
    # print(my_fabs(-1))
    # 如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。return None可以简写为return。
    
    # 函数返回多值
    import math
    
    
    def my_fuction(x, y):
        return math.cos(x), math.sin(y)
    
    
    # print(my_fuction(1,2))
    # 在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,
    # 所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便
    
    # 函数定义:默认参数
    def power(x, n=2):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s
    
    
    # 由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面
    
    # 函数定义:可变参数
    def average(*args):
        sum = 0.0
        if len(args) == 0:
            return sum
        for x in args:
            sum += x
        sum /= len(args)
        return sum
    
    
    # 在函数内部,直接把变量 args 看成一个 tuple 就好了。
    
    
    # 函数切片
    L = range(1, 101)
    # print(L[:12])
    # print(L[2::3])
    # print(L[4:51:5])
    
    # 倒序切片
    L = range(1, 101)
    
    
    # print(L[-10:])
    # # print(L[-46::5])
    # 索引都是从小到大
    
    # 字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。
    # 因此,字符串也可以用切片操作,只是操作结果仍是字符串
    
    # print('ABCDEFG'[:3])
    
    # 字符串有个方法 upper() 可以把字符变成大写字母:
    def firstCharUpper(s):
        return s[0:1].upper() + s[1:]
    
    
    # print(firstCharUpper('happy'))
    
    
    # 1. 有序集合:list,tuple,str和unicode;
    # 2. 无序集合:set
    # 3. 无序集合并且具有 key-value 对:dict
    
    # 使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。
    L = ['Adam', 'Lisa', 'Bart', 'Paul']
    # for index, name in enumerate(L):
    # print(index, '-', name)
    # 索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,
    # 再迭代,就同时获得了索引和元素本身。
    
    # 迭代dict的value
    d = {'Adam': 95, 'Lisa': 85, 'Bart': 59}
    # print(d.values())
    # for v in d.values():
    #     print(v)
    
    # 迭代dict的key和value
    d = {'Adam': 95, 'Lisa': 85, 'Bart': 59}
    # print(d.items())
    # for key, value in d.items():
    #     print(key, ':', value)
    
    # print([x * x for x in range(1, 11)])#循环太繁琐,而列表生成式则可以用一行语句代替循环生成ist
    # print([x * x for x in range(1, 11) if x % 2 == 0])#偶数的平方
    
    # 1. isinstance(x, str) 可以判断变量 x 是否是字符串;
    # 2. 字符串的 upper() 方法可以返回大写的字母。
    def upper_change(L):
        return [x.upper() for x in L if isinstance(x, str)]
    
    
    # print(upper_change(['Hello', 'world', 101]))
    
    #多层表达式
    print([x*100+y*10+z for x in range(1,10) for y in range(0,10) for z in range(1,10) if x==z])


    查看全部
    0 采集 收起 来源:多层表达式

    2018-05-05

  • # list是一种有序的集合,可以随时添加和删除其中的元素
    test = [1, 2, 'yanglibao', True, False, 1.23456, ]  # Python是动态语言,所以list中的元素并不要求都必须是同一种数据类型
    # print(test)
    # 一个元素也没有的list,就是空list
    empty_list = []
    # print(empty_list)
    # list索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。使用索引时,千万注意不要越界。
    # list倒序索引也不要越界
    # append()总是把新的元素添加到 list 的尾部。
    test.append('happy')
    # print(test)
    # insert()方法,它接受两个参数,第一个参数是索引号,第二个参数是待添加的新元素
    test.insert(0, 'frist')  # 原来索引为 0 的元素,以及后面的所有元素,都自动向后移动一位。
    # print(test)
    # pop()方法总是删掉list的最后一个元素,并且它还返回这个元素
    test.pop()
    # print(test)
    # print(test.pop())
    # print(test.pop(0))  # pop中参数为索引删除
    # 对list中的某一个索引赋值,就可以直接用新的元素替换掉原来的元素,list包含的元素个数保持不变。
    test[-1] = 'love'
    # print(test)
    
    # 元组:tuple一旦创建完毕,就不能修改了。
    tuple_test = (1, 2.3, 'yanglibao')
    # print(tuple_test[2])  # 可以访问
    # tuple_test[0]=5   #不能赋值成别的元素
    # print(tuple_test)
    empty_tuple = ()
    # print(empty_tuple)
    tuple_test1 = (1)
    # print(tuple_test1)  # 因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
    tuple_test2 = (1,)
    # print(tuple_test2)  # 正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义
    tuple_test3 = (1, 2)
    # print(tuple_test3)  # 多元素 tuple 加不加这个额外的“,”效果是一样的:
    
    # “可变”的tuple
    list_change = ['yanglibao', 1, 1, 2, 3]
    tuple_change = (1, 2, list_change)
    # print(tuple_change)
    list_change.pop()
    # print(tuple_change)
    # 要创建一个内容也不变的tuple,那就必须保证tuple的每一个元素本身也不能变。
    
    # if-else语句
    test = 'yanglibao'
    if test == 'yanglibao':
        '''print('yes')'''
    else:
        ''' print('no')'''
    # if-elif-else
    test = 1
    # if test>0:
    #     print('大于0')
    # elif test<0:
    #     print('小于0')
    # else:
    #     print('等于0')
    
    # for循环语句
    test = [1, 2, 3, 4, 5, 6]
    # for x in test: #遍历list
    #     print(x)
    
    # while循环语句
    x = 0
    # while test[x]<4:
    #     print(test[x])
    #     x+=1
    
    # break跳出循环
    x = 0
    # while True:
    #     x+=1;
    #     print(x)
    #     if x>5:
    #         break
    
    # continue继续循环
    x = 0
    # while x < 10:
    #     x += 1
    #     if x % 2 == 0:
    #         print(x)
    #     else:
    #         continue
    
    # 花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
    # dict就是通过 key 来查找 value。
    d = {
        'a': 'boy',
        'b': 'girl'
    }
    # print(len(d))  # 由于dict也是集合,len() 函数可以计算任意集合的大小:
    # print(d['a'])  # 使用 d[key] 的形式来查找对应的 value
    # print(d.get('b'))  # 使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None
    # print(d.get('c'))
    
    # dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。
    # 而list的查找速度随着元素增加而逐渐下降。
    # 不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,
    # list正好相反,占用内存小,但是查找速度慢。
    
    # dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样
    
    # dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。
    # 但是list是可变的,就不能作为 key。
    
    # 更新dict
    d['c'] = 'girl'  # 赋值语句可以添加新元素
    # print(d)
    d['a'] = 'gril'
    # print(d)  # 赋值语句可以更改已有key的value
    
    # 遍历dict
    # for mark in d:
    # print(mark,':',d[mark])#由于通过 key 可以获取对应的 value,因此,在循环体内,可以获取到value的值。
    
    # python中的set:持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像
    s = set(['Adam', 'Lisa', 'Bart', 'Paul'])
    # print(s)  # 打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。
    s = set(['Adam', 'Lisa', 'Bart', 'Paul', 'Adam'])  # set不能包含重复的元素
    # print(len(s), ';', s)  # set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。
    
    # 由于set存储的是无序集合,所以我们没法通过索引来访问。
    # 访问 set中的某个元素实际上就是判断一个元素是否在set中。
    # print('Adam'in s)
    # print('a'in s)
    
    # set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
    # set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
    # set存储的元素也是没有顺序的。
    x = 'Monday'
    # if x == 'Monday' or 'Tuesday' or 'Wednesday' or 'Thursday' or 'Friday' or 'Saturday' or 'Sunday':
    #     print('input is ok')
    # else:
    #     print('input is error')
    
    # set 遍历
    s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])
    # for mark in s:
    #     print(mark[0],':',mark[1])
    
    # 由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:
    # 一是把新的元素添加到set中,二是把已有元素从set中删除。
    s = set([1, 2, 3])
    s.add(4)  # 添加元素时,用set的add()方法
    # print(s)
    s.add(3)  # 如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了
    # print(s)
    s.remove(4)  # 删除set中的元素时,用set的remove()方法
    
    
    # s.remove(4)#如果删除的元素不存在set中,remove()会报错
    # print(s)
    
    # 在交互式命令行通过 help(abs) 查看abs函数的帮助信息。
    # help(abs)
    
    # 函数
    def my_fabs(x):
        if (x >= 0):
            return x
        else:
            return -x
    
    
    # print(my_fabs(-1))
    # 如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。return None可以简写为return。
    
    # 函数返回多值
    import math
    
    
    def my_fuction(x, y):
        return math.cos(x), math.sin(y)
    
    
    # print(my_fuction(1,2))
    # 在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,
    # 所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便
    
    # 函数定义:默认参数
    def power(x, n=2):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s
    
    
    # 由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面
    
    # 函数定义:可变参数
    def average(*args):
        sum = 0.0
        if len(args) == 0:
            return sum
        for x in args:
            sum += x
        sum /= len(args)
        return sum
    
    
    # 在函数内部,直接把变量 args 看成一个 tuple 就好了。
    
    
    # 函数切片
    L = range(1, 101)
    # print(L[:12])
    # print(L[2::3])
    # print(L[4:51:5])
    
    # 倒序切片
    L = range(1, 101)
    
    
    # print(L[-10:])
    # # print(L[-46::5])
    # 索引都是从小到大
    
    # 字符串 'xxx'和 Unicode字符串 u'xxx'也可以看成是一种list,每个元素就是一个字符。
    # 因此,字符串也可以用切片操作,只是操作结果仍是字符串
    
    # print('ABCDEFG'[:3])
    
    # 字符串有个方法 upper() 可以把字符变成大写字母:
    def firstCharUpper(s):
        return s[0:1].upper() + s[1:]
    
    
    # print(firstCharUpper('happy'))
    
    
    # 1. 有序集合:list,tuple,str和unicode;
    # 2. 无序集合:set
    # 3. 无序集合并且具有 key-value 对:dict
    
    # 使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。
    L = ['Adam', 'Lisa', 'Bart', 'Paul']
    # for index, name in enumerate(L):
    # print(index, '-', name)
    # 索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,
    # 再迭代,就同时获得了索引和元素本身。
    
    # 迭代dict的value
    d = {'Adam': 95, 'Lisa': 85, 'Bart': 59}
    # print(d.values())
    # for v in d.values():
    #     print(v)
    
    # 迭代dict的key和value
    d = {'Adam': 95, 'Lisa': 85, 'Bart': 59}
    # print(d.items())
    # for key, value in d.items():
    #     print(key, ':', value)
    
    # print([x * x for x in range(1, 11)])#循环太繁琐,而列表生成式则可以用一行语句代替循环生成ist
    # print([x * x for x in range(1, 11) if x % 2 == 0])#偶数的平方
    
    # 1. isinstance(x, str) 可以判断变量 x 是否是字符串;
    # 2. 字符串的 upper() 方法可以返回大写的字母。
    def upper_change(L):
        return [x.upper() for x in L if isinstance(x, str)]
    
    
    # print(upper_change(['Hello', 'world', 101]))
    
    #多层表达式
    print([x*100+y*10+z for x in range(1,10) for y in range(0,10) for z in range(1,10) if x==z])


    查看全部
    0 采集 收起 来源:多层表达式

    2018-05-05

  • append()在列表最后添加元素,insert(index, item) 在index索引处添加item;

    pop()删除列表最末尾的元素,pop(index)删除index索引处的元素

    查看全部
  • 删除了一个改变了顺序
    查看全部
  • python 语言中,不需要:结尾,语句中要注意除“”,‘’中不能有多余的字符。

    查看全部
  • a = 'python'
    print 'hello,',a or 'world'              #hello python
    b = ''
    print 'hello,', b or 'world'            #hello world
    打印包含and或or运算符的语句时,当前面的返回true就不会继续执行后面的,打印出来。
    and 两者为真,才为真;or一者为真即为真;
    当值不为0,空字符串,和None时即为真

     

    查看全部
  • 不要输入u,-*- coding: utf-8 -*- 这句已经起到中文编码的效果了

    查看全部
  • sum 总和

    查看全部

举报

0/150
提交
取消
课程须知
如果您了解程序设计的基本概念,会简单使用命令行,了解中学数学函数的概念,那么对课程学习会有很大的帮助,让您学起来得心应手,快速进入Python世界。
老师告诉你能学到什么?
通过本课程的学习,您将学会搭建基本的Python开发环境,以函数为基础编写完整的Python代码,熟练掌握Python的基本数据类型以及list和dict的操作。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!