廖雪峰Python学习笔记1

Python基础


一、基础语法规范

1.用#作为代码注释
2.当语句以冒号:结尾时,缩进的语句视为到麻花,缩进**使用4个空格**
3.Python程序大小写敏感

二、数据类型

  1. 整数
  2. 浮点数
  3. 字符串:用单引号’'或双引号"“括起的任意文本,多行字符串用”“” “”"
  • 转义字符:\ ,可以用来转义很多特殊字符,在行尾时表示续行符。比如\n表示换行,\t表示制表符,\表示的字符就是反斜杠符号\。
  • 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许在字符串前加r,表示内部的字符串默认不转义。
    >>> s = "换行符是\\n。"
    >>> print(s)
    换行符是\n。
    
    >>>print(r'''hello,\n
    world''')
    hello,\n
    world
    
  1. 布尔值:一个布尔值只有True、False两种值,布尔值可以用and、or、not运算

    >>> False and False
    False
    >>> 5 > 3 and 3 > 1
    True
    >>> True or False
    True	
    >>> not 1 > 2
    True
    >>>if age >= 18:
          print('adult')
       else:
          print('teenager')
    
  2. 空值:用None表示

  3. 列表(list):list是一种有序的集合,可以随时添加和删除其中的元素,list中元素的数据类型可以不同

    #设置列表
    animals = ['dog','cat','pig']
    
    #获取列表的元素个数
    len(animals)      
    
    #访问列表中的元素——用索引,从0开始,到len(animals)-1结束
    annimals[0]
    
    #往列表中追加元素
    animals.append('rabbit')
    
    #将元素插入到指定位置,如索引号为1的位置
    animals.insert(1,'sheep')
    
    #删除指定位置的元素
    animals.pop(1)
    
    #替换指定位置元素的值
    animals[1] = 'monkey'
    
  4. 元组(tuple): tuple一旦初始化后,每个元素指向永远不变,因此没有列表的append()、insert()、pop()方法,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

    #元组的定义
    t = (1,2)
    t = ()   #空元组
    t = (1,)   #只有一个元素的元组,必须加上逗号
    
  5. 字典(dict): 使用键-值(key-value)存储,具有极快的查找速度,在放进去的时候,必须根据key算出value的存放位置,一个key只能对应一个value,这样,取的时候才能根据key直接拿到value。

    #字典的定义
    d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
    
    #插入数据
    d['Adam'] = 67
    
    #修改数据
    d['Bob'] = 78
    
    #key不存在的话将数放进字典就会报错,通过get()方法判断
    d.get('Thomas',-1)  # 如果key:Thomas不在字典内,返回-1
    
    #删除字典的数据,删除key即可
    d.pop('Bob')
    

    dict的key必须是不可变对象。因为dict根据key来计算value的存储位置(哈希算法),要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key.

  6. set:一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等。

    #定义set,需要提供一个list作为输入集合
    >>> s = set([1, 1, 2, 2, 3, 3])
    >>> s
    {1, 2, 3}
    #添加元素
    >>> s.add(4)
    #删除元素
    >>> s.remove(4)
    

三、字符串与编码

  1. 字符编码
  • ASCII
    由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。
    在这里,每一位0或者1所占的空间单位为bit(比特),这是计算机中最小的表示单位,每8个bit组成一个字节,这是计算机中最小的存储单位。
  • GBK 和 GB2312
    中文编码
  • Unicode
    Unicode把所有语言都统一到一套编码里,解决乱码问题。最常用的是UCS-16编码,用两个字节表示一个字符
    但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。
    所以,出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。
  1. Python字符串
    对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符
    >>> ord('A')
    65
    >>> ord('中')
    20013
    >>> chr(66)
    'B'
    >>> chr(25991)
    '文
    
    由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
    #对bytes类型的数据用带b前缀的单引号或双引号表示
    >>> x = b'ABC'
    
    #以Unicode表示的str通过encode()方法可以编码为指定的bytes
    >>> 'ABC'.encode('ascii')
    b'ABC'
    >>> '中文'.encode('utf-8')
    b'\xe4\xb8\xad\xe6\x96\x87'
    
    #要把bytes变为str,就需要用decode()方法
    >>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
    '中'
    
    #计算str包含多少个字符
    >>> len('ABC')
    3
    >>> len('中文')
    2
    
    #计算bytes的字节数
    >>> len('中文'.encode('utf-8'))
    6
    
  2. 格式化字符串
    %运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,%d表示用浮点数替换。
    有几个占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个占位符,变量或值的括号可以省略。
# -*- coding: utf-8 -*-

#格式化整数和浮点数还可以指定是否补0和整数与小数的位数
>>> print('%2d-%02d' % (3, 1))
3-01

>>> print('%.2f' % 3.1415926)
3.14

>>> s1 = 72
>>> s2 = 85
>>> r = (s2 - s1)*100/s1
#字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%
>>> print('小明成绩提升了 %.2f %%' % r)   
小明成绩提升了 18.06 %

#format()方法,可以接受不限个数的参数,位置也可以不按顺序
#普通用法,对应的{}依次替换
>>>print("还有{}天放假,我还在坚持学习{}".format(2, "Python"))
例句:还有2天放假,我还在坚持学习Python

#设置位置(索引)格式化,format函数中,按索引的参数替换字符串
>>> print'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125))
Hello, 小明, 成绩提升了 17.1%

#指定替换参数的值
>>>str = "{who}坚持学习{language}, 取得了{what}的成绩".format(who="张三", language="Python", what="优异")
>>>print(str)
张三坚持学习Python, 取得了优异样的成绩

#f-string方法
>>> r = 2.5
>>> s = 3.14 * r ** 2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62

四、条件判断

bmi1=input("请输入你的bmi指数")

bmi=float(bmi1)

if bmi<18.5:

    print("过轻")

elif 18.5<=bmi<=25:

    print('正常')

elif 25<=bmi<=32:

    print("肥胖")

elif bmi>=32:

    print("严重肥胖")

五、循环

  1. for…in循环,依次把list或tuple中的每个元素迭代出来。

    #计算0-100的整数之和
    sum = 0
    for x in range(101):
        sum = sum + x
    print(sum)
    
  2. while循环,只要条件满足,就不断循环,条件不满足时退出循环

    # 计算0到100以内的奇数循环
    sum = 0
    n = 99
    while n > 0:
        sum = sum + n
        n = n - 2
    print(sum)
    
  3. 关键词break和continue
    break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
    注意:大多数循环并不需要用到break和continue语句

    #提前结束循环,打印出1~10后,紧接着打印END
    n = 1
    while n <= 100:
        if n > 10: # 当n = 11时,条件满足,执行break语句
            break # break语句会结束当前循环
        print(n)
        n = n + 1
    print('END')
    
    
    #只打印奇数
    n = 0
    while n < 10:
        n = n + 1
        if n % 2 == 0: # 如果n是偶数,执行continue语句
            continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
        print(n)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值