廖雪峰python精简教程(winboy专属)


安装Python

  • 下载安装python64位 32位
  • 记得勾选Add Python 3.5 to PATH ,然后点“Install Now”即可完成安装。

安装文本编辑器

  • Sublime Text

编写程序前应该知道

  • 输出 print()
  • 输入 input()
  • 变量 简单理解为一个存放东西的箱子
  • 注释 用#来写注释,#所在行计算机直接忽视. 注释是给人看的,而不是给机器看的.
  • 代码块 编辑器中的每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块。
  • 缩进 坚持使用4个空格的缩进, 便于阅读和理解.sublimes编辑器已经默认设置一个tab等于4个空格.

数据类型

  • 整数
  • 浮点数
  • 字符串 字符串是以单引号'或双引号"括起来的任意文本
    转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\\表示的字符就是\
    为了简化,Python还允许用r''表示''内部的字符串默认不转义
  • 布尔值 TureFalse (大小写需要完全一样)
    可以用and,or,not来运算布尔值(与或非)
    and 与运算, 只有全都Ture才输出Ture
    or 或运算,只有有Ture就输出Ture
    not 非运算, 把True变成FalseFalse变成True
  • 空值 用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
  • 变量 简单理解为一个存放东西的箱子.
    变量在程序中就是用一个变量名表示.
    变量名必须是大小写英文、数字和_的组合,且不能用数字开头.
  • =赋值语句 把=右边的值赋给左边.
  • 常量 就是不变的变量. 在Python中, 通常用全部大写的变量名表示常量, 如PI.
  • 三种除法
    /无论怎么除都是浮点数
    //结果取整
    % 结果取余

字符编码

  • 请读者自己搞清楚ASCII、 Unicode和UTF-8的关系
    • 简单说就是从最简单的ASCII开始发展, 各国为自身需要制定自己语言的编码. 导致在多语言混合的文本里, 会出现乱码.
    • 为解决乱码问题, 于是制定了Unicode.
      Unicode是所有语言都统一到一套编码里.
      ASCII编码是1个字节, 而Unicode编码通常是2个字节.
      但如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间, 这在存储和传输上就十分不划算.
    • 为了解决浪费的问题, 于是制定了UTF-8编码.
      UTF-8编码简单理解就是Unicode的精简, 只保留最常用的字符.

Python的字符串

  • Python3中, 字符是以Unicode编码的,这意味着它支持多语言.
  • 可以利用ord()函数 跟 chr()函数 进行字符和编码的转换.
    在编写程序时, 最开头加上
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
    第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
  • 格式化%
    这里的格式化不是指硬盘的格式化, 而是可以理解为模版.
    例如 我们经常会输出类似亲爱的xxx你好!你xx月的话费是xx,余额是xx之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种能够简便地表达格式化字符串的方式。
    %d 整数, %f 浮点数, %s 字符串, %x 十六进制整数 这四种常见的占位符.
    使用范例: 'Hi, %s, you have $%d.' % ('Michael', 1000000)
    输出为'Hi, Michael, you have $1000000.'
    %.2f 表示保留小数点2位显示.
    当字符串里%是表达一个普通字符时, 需要编写为%%.

list和tuple

  • list
    • list是一种有序的集合. 比如,列出班里所有同学的名字,就可以用一个list表示:
      >>> classmates = ['Michael', 'Bob', 'Tracy']
      >>> classmates ['Michael', 'Bob', 'Tracy']
      这个变量classmates就是一个list。
    • len()函数可以获得list元素的个数.如输入len(classmates),得到3.
    • 输入classmates[0], classmates[1], classmates[2]可分别获得Michael, Bob, Tracy.值得留意的是, 里边的元素是从0开始数的.
    • 输入classmates[-1], classmates[-2], classmates[-3], 则分别获得Tracy, Bob, Michael,值得注意的是里边的数字.表示从最后一个元素数起.
    • 使用classmates.append('Adam')往list classmates的最后添加一个元素Adam
    • 使用classmates.insert(2, 'Jack')Jack这个元素插到classmates这个list的第三个位置.其它元素往后退一位.
    • 使用classmates.pop()删除list的最后一个元素.输入classmates.pop()后,list的最后一个位置的元素被删除.
    • 使用classmates.pop(i)来删除list的特定位置元素. 输入classmates.pop(2), 则list的第三个位置的元素被删除
    • 使用直接赋值可以直接替换list里的某个元素.如classmates[2] = 'Adam', 则这个list里的第三个元素被替换为'Adam'.
    • list里元素的类型可以是不同的, 比如L = ['apple', 13213, bb] 表明字符串, 数字, 变量 都可以是list的元素.
    • 一个list可以是另一个list的元素,如A = ['apple', 'banana', ['mouse', 'keyboard'], 'orange'], 值得留意的是如果输入len(A)的话, 得到的结果是4, 因为此时子list是被当作一个元素处理.
    • 把list拆开写比较好理解.
      A = ['apple', 'banana']
      B = ['mouse', 'keyboard', A]
      如果想要取得banana这个元素, 可以写A[1]或者B[2][1]. 你可以把B这个list当成二维数组,以此类推有三维, 四维....
  • tuple
    • tuple称为元组, 跟list非常类似, 区别在于tuple后使用()来囊括元素, 而list是使用[]; 其次在于list的元素可重新赋值, tuple的元素不可变换.
    • tuple一旦初始化就不能修改.
    • tuple因为不可变, 所以代码更加稳定, 可控, 安全.
    • 只有1个元素的tuple定义时必须加一个逗号,,来消除歧义.
      例:t = (1,)

if, elif, else条件判断

  • 经典情景

age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')

千万不要忘记条件后的冒号:,else后原本也有条件, 只是省略了, 但该有的冒号:还得加上.


再谈input()

  • 在做条件判断时需要注意, input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。
    Python提供了int()函数来完成这件事情:

s = input('birth: ') birth = int(s) if birth < 2000: print('00前') else: print('00后')


循环

  • Python提供两种循环
    • for x in...:
    • while ...:

留意条件的冒号

  • for x in ...:循环就是把每个元素代入变量x,然后执行缩进块的语句。
  • range()函数 可以生成一个整数序列, 如range(5)是生成0, 1, 2, 3, 4这样的整数序列. 再通过list()函数可以转换为list.
  • while循环,只要条件满足,就不断循环,条件不满足时退出循环。
  • 利用breakcontinue跳出循环
    • break的作用是提前结束循环.
    • continue的作用是提前结束本轮循环,并直接开始下一轮循环。

n = 0 while n < 10: n = n + 1 print(n)

n = 0 while n < 10: n = n + 1 if n % 2 == 0: # 如果n是偶数,执行continue语句 continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行 print(n)


dict和set

你可能感兴趣的:(廖雪峰python精简教程(winboy专属))