Python基本语法

算数运算符

  • 运算符 描述 实例
    +
    -
    *
    / 9 / 2 = 4.5
    // 取整除 9 // 2 = 4
    % 取余数 9 % 2 = 1
    ** 2 ** 3 = 8
  • 在Python中*还可以用于字符串,计算结果就是字符串重复指定次数的结果

    1
    2
    In [1]:"-" * 5
    Out[1]"-----"

变量类型

  • 数字型

    • 整型 int

    • 浮点型 float

    • 布尔型 bool

    • True

    • False

    • 复数型 complex

    • 主要用于科学计算,例如:平面场问题、波动问题、电容电感等问题

  • 非数字型

    • 字符串
    • 列表
    • 元组
    • 字典
  • 提示:在Python2.x中,整数还可分为intlong

  • 使用type函数可以查看一个变量类型

    • In [1]: type(name)
  • 字符串之间可以用+进行拼接

    字符串可以和整数使用*重复拼接相同的字符串

    数字型变量和字符串之间不能进行其他运算

变量的输入和输出

  • input()

    • 字符串变量 = input("提示信息:")
    • input()输入的内容都认为是一个字符串
  • 类型转换函数

    • int(x)将x转换为一个整数
    • float(x)将x装换为一个浮点数
  • 变量的格式化输出

    • 格式化字符 含义
      %s 字符串
      %d 有符号十进制整数,%06表示输出的整数显示6位数,不足的地方用0补全
      %f 浮点数,%.02f表示小数点后只显示两位
      %% 输出%
    • print("Name:%s,Age:%d"% (name, age))name变量中为姓名信息,age变量中为年龄信息

    • print("abc", end = "a")在默认情况下,print输出后会自动在末尾添加换行,利用end可用end内容替代换行

    • print("")在一行输出后添加换行

转义字符

  • 转义字符 描述
    \\ 反斜杠符号
    \` 单引号
    \\“ 双引号
    \n 换行
    \t 横向制表符
    \r 回车

函数的基本使用

  • 函数的定义

    1
    2
    3
    def function():
    # 函数内容
    print("hello")
  • 定义的函数只有被调用才会执行

模块

  • 每一个以扩展名.py为结尾的python源文件都是一个模块
  • 导入模块需要import
  • 模块名也是标识符,需要遵循标识符命名规则
  • .pyc表示编译过文件

列表

  • 查看列表List能使用的功能

    • 在ipython3中操作:
    1
    2
    In [1]:name_list.(+tab键)
    name_list.append name_list.count等等
    • 序号 分类 关键字/函数/方法 说明
      1 增加 列表.insert(索引,数据) 在指定位置插入数据
      列表.append(数据) 在末尾追加数据
      列表.extend(列表2) 将列表2的数据追加到列表
      2 修改 列表[索引] = 数据 修改指定索引的数据
      del 列表[索引] 删除指定索引的数据
      列表.remove(数据) 删除第一个出现的指定数据
      列表.pop 删除末尾数据
      列表.pop(索引) 删除指定索引数据
      列表.clear 情空列表
      4 统计 len(列表) 列表长度
      列表.count(数据) 数据在列表中出现次数
      列表.index(数据) 返回数据索引
      5 排序 列表.sort() 升序排序
      列表.sort(reverse=True) 降序排序
      列表.reverse() 逆转,反转
  • 使用del关键字可以从内存中删除变量

  • 关键字后面不需要使用括号,函数需要

  • 迭代循环for num in nums

  • 列表中可以存储不同类型数据

元组

  • Tuple与列表类似,不同之处在于元组的元素不能修改

    • 元组表示多个元素组成的序列
    • 元组在Python开发中有特定的应用场景
  • 用于存储一串信息,数据之间使用,分隔

  • 元组用()定义

  • 元组的索引从0开始

  • 创建空元组()

  • 查看元组能使用的功能方法如列表

  • 可用for in遍历元组

  • 应用场景

    • 函数的参数和返回值
    • 格式化字符串
    • 让列表不可被修改,以保护列表安全
  • list(元组)# 元组转换为列表

    tuple(列表)# 列表转换为元组

字典

  • dictionary(字典)可用于存储多个数据

  • 字典是无序对象合集,列表是有序对象合集

  • 字典用{}定义

  • 字典使用键值对存储数据,键值之间使用分隔

    • key是索引
    • value是数据
    • 键和值之间使用:分隔
    • 键必须是唯一的
    • 值可以取任何数据类型,但键只能使用字符串、数字和元组
  • 举例:

    1
    2
    3
    4
    xiaoming = {"name": "小明",
    "age": 18,
    "gender": True,
    "height": 1.75}
    key value
    name 小明
    age 18
    gender True
    height 1.75
  • 字典取值使用[]

    • 例如:pirnt(["name"])
  • xiaoming["GPA"] = 3.5若key不存在则会新增键值对

  • 查看元组能使用的功能方法如列表

  • for k in xiaoming变量k是键值

  • 使用场景

    • 使用多个键值对存储描述一个物体的相关信息
    • 将多个字典放在一个列表中再进行遍历,再循环体内部针对每一个字典进行相同的处理

字符串

  • 可以用""''定义字符串,使用''往往用于定义字符串内有""的情况

    • str2 = 'my name is "logo"'
  • index("substring")查询子字符串substring不存在代码会报错

  • 判断类型

方法 说明
string.isspace() 若string只包含空格,返回True
sting.isalnum() 若string至少有一个字符并且所以字符或数字返回True
string.isalpha() 若string至少有一个并且所有字符都是字母返回True
string.isdecimal() 若string只包含数字则返回True(全角数字)
string.isdigit() 若string只包含数字则返回True(全角数字,(1),\u00b2
string.isnumeric() 若string只包含数字则返回True(全角数字,汉字数字)
string.istitle() 若string是标题化的(每个单词首字母大写)则返回True
string.islower() 若string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True
string.isupper() 若string中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True
  • 查找和替换
方法 说明
string.startswith(str) 若string以str开头则返回True
string.endwith(str) 若string以str结尾则返回True
string.find(str,start=0,end=len(string)) str在 string的start到end中则返回索引值,否则返回-1
string.rfind(str,start=0,end=len(string)) 类似find()函数,从右边开始
string.index(str,start=0,end=len(string)) find()类似,但是str不在string中会报错
string.rindex(str,start=0,end=len(string)) 类似于index(),从右边开始
string.replace(old_str,new_str,num=string.count(old)) 把string中old_str替换为new_str,若num指定,则替换不超过num
  • 大小写转换
方法 说明
string.capitalize() 把字符串第一个字符大写
string.title() 把字符串每个单词首字母大写
string.lower() 转换string所有大写字母为小写
string.upper() 转换string所有小写字母为大写
string.swapcase() 翻转string中的大小写
  • 去除空白字符
方法 说明
string.lstrip() 截掉 string 左边(开始)的空白字符
string.rstrip() 截掉 string 右边(末尾)的空白字符
string.strip() 截掉 string 左右两边的空白字符
  • 拆分和连接
方法 说明
string.partition(str) 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
string.rpartition(str) 类似于 partition() 方法,不过是从右边开始查找
string.split(str="", num) str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
string.splitlines() 按照行(‘\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表
string.join(seq) 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
  • 切片 方法适用于 字符串列表元组
    • 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
    • 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
    • 字典 是一个 无序 的集合,是使用 键值对 保存数据
    • nums_str[开始索引:结束索引:步长]
    • 注意
      • 指定的区间属于 左闭右开[开始索引, 结束索引) => 开始索引 >= 范围 < 结束索引
      • 起始 位开始,到 结束位的前一位 结束(不包含结束位本身)
      • 从头开始,开始索引 数字可以省略,冒号不能省略
      • 到末尾结束,结束索引 数字可以省略,冒号不能省略
      • 步长默认为 1,如果连续切片,数字和冒号都可以省略
    • 索引的顺序和倒序
      • 在 Python 中不仅支持 顺序索引,同时还支持 倒序索引,步长为-1
      • 所谓倒序索引就是 从右向左 计算索引
        • 最右边的索引值是 -1,依次递减

公共方法

  • 内置函数
函数 描述 备注
len(item) 计算容器中元素个数
del(item) 删除变量 del 有两种方式
max(item) 返回容器中元素最大值 如果是字典,只针对 key 比较
min(item) 返回容器中元素最小值 如果是字典,只针对 key 比较
cmp(item1, item2) 比较两个值,-1 小于/0 相等/1 大于 Python 3.x 取消了 cmp 函数

注意

  • 字符串 比较符合以下规则: “0” < “A” < “a”
  • 切片

    描述 Python 表达式 结果 支持的数据类型
    切片 “0123456789”[::-2] “97531” 字符串、列表、元组
    • 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
    • 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
    • 字典 是一个 无序 的集合,是使用 键值对 保存数据
  • 运算符

    运算符 Python 表达式 结果 描述 支持的数据类型
    + [1, 2] + [3, 4] [1, 2, 3, 4] 合并 字符串、列表、元组
    * [“Hi!”] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 重复 字符串、列表、元组
    in 3 in (1, 2, 3) True 元素是否存在 字符串、列表、元组、字典
    not in 4 not in (1, 2, 3) True 元素是否不存在 字符串、列表、元组、字典
    > >= == < <= (1, 2, 3) < (2, 2, 3) True 元素比较 字符串、列表、元组

    注意

    • in 在对 字典 操作时,判断的是 字典的键
    • innot in 被称为 成员运算符
  • 成员运算符

    成员运算符用于 测试 序列中是否包含指定的 成员

    运算符 描述 实例
    in 如果在指定的序列中找到值返回 True,否则返回 False 3 in (1, 2, 3) 返回 True
    not in 如果在指定的序列中没有找到值返回 True,否则返回 False 3 not in (1, 2, 3) 返回 False

    注意:在对 字典 操作时,判断的是 字典的键

  • 完整的 for 循环语法

    • Python 中完整的 for 循环 的语法如下:
1
2
3
4
5
for 变量 in 集合:

循环体代码
else:
没有通过 break 退出循环,循环结束后,会执行的代码

应用场景

  • 迭代遍历 嵌套的数据类型时,例如 一个列表包含了多个字典

  • 需求:要判断 某一个字典中 是否存在 指定的 值

    • 如果 存在,提示并且退出循环

    • 如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示

LINUX 上的 Shebang 符号(#!)

  • #!这个符号叫做 Shebang 或者 Sha-bang
  • Shebang 通常在 Unix 系统脚本的中 第一行开头 使用
  • 指明 执行这个脚本文件解释程序
  • 使用 Shebang 的步骤
  1. 使用 which 查询 python3 解释器所在路径
1
$ which python3
  1. 修改要运行的 主 python 文件,在第一行增加以下内容
1
#! /usr/bin/python3
  1. 修改 主 python 文件 的文件权限,增加执行权限
1
$ chmod +x cards_main.py
  1. 在需要时执行程序即可
1
./cards_main.py