从0到1 Python基础

从0到1 Python基础

语法基础

  1. 变量:一个可以改变的量

    (1) 变量的命名规则:变量由字母、数字与下划线组成;第一个字母必须是下划线或者字母;不能是关键字

    (2)变量的声明:所有的变量都不需要声明,因为python会自动识别数据的类型

    语法:变量名 = 值
    声明就是指出变量的数据类型并根据数据类型分配空间给变量

  2. 常量:一个不改变值的量,其实也是变量一般用大写字母组成的名称表示

  3. 查阅python的关键字

import keyword
print(keyword.kwlist)
  1. 数据类型

    • 数字
      • 整数型
      • 浮点型
      • 复数complex(a,b)
      • 布尔型(只有True和False)
    • 字符串
    • 列表
    • 元组
    • 字典
    • 集合

    使用type()判断变量是什么类型

  2. 运算符

    • 算数运算符

      优先级:乘、除 > 加、减 ; 取余与乘除优先级相同 。

    • 逻辑运算符

      与 and

      或 or

      非 not

    • 身份运算符:判断两个变量的引用对象是否是同一个

      == 用于判断两个变量的值是否相同

      a. is

      b. not is

    • 成员运算符:判断某个值是否存在于序列当中(列表、元组、字符串)

      a. in

      b. not in

  3. 类型转换

    • 数字 -> 字符串 str(数字)

    • 字符串->数字

      int(字符串) #字符串中只有数字

      float(字符串)

    • 整数yu浮点数

      int(浮点数) #只保留了整数部分

      float(整数)

  4. print

    语法:print(变量1,变量2,变量3,····)

    ​ print(值列表,sep = “分隔符”,end = “结束符”,file = “文件对象”)

    sep 默认为空格

    end 默认为"\n"

    file 用于指定将内容输出到哪个文件当中

    file = open("D:\\hello.txt",'w',encoding="utf-8")
    print("从0到1快速上手",file = file)
    
  5. input

    语法:a = input()

    通过input()从键盘中读取内容赋值给变量,但input()读取的内容永远是字符串

    赋值

    python的多重赋值:可以同时为多个变量赋值

    • 基本用法

      a,b = 1,2
      
    • 交换变量的值

      x,y = y,x
      
    • 同时为多个变量赋值

      a,b,c = 1,2,3
      
    • 从序列中赋值

      #列表中的元素赋值
      a,b,c = [1,2,3]
      #解构元组给变量赋值
      first_name,second_name = ("Jenny","Danny")
      #结构字符串给变量赋值
      first_char,second_char = "HE"
      
    • 与函数返回值结合使用

      def get_min_max(numbers):
          return min(numbers), max(numbers)
      
      min_val, max_val = get_min_max([1, 2, 3, 4, 5])
      

      python函数可以同时返回多个值

    • 注意事项

      • 多重赋值要求右侧表达式的长度与左侧变量的数量相匹配。
      • 如果数量不匹配,Python会抛出 ValueError

结构流程控制

  1. if···elif···else

  2. while/ do···while

  3. for

    for i in range(n) #从0到n-1

    range(start,end,step) #[start,end)

列表与元组

  1. introduce 列表

    列表可以存储一组数据,且列表中的元素可以不同数据类型,且列表元素可以是一个列表。

    这也是列表与数组的不同,数组要求元素是同一数据类型。

    列表是python内置的数据类型,若要创建数组需要使用numpy模块

  2. 创建列表

    语法:列表名 = [元素1,元素2,元素3,···]

    #创建一个空表
    list1 = []
    #创建一个包含3个元素的列表
    list2 = ["red","green","gray"]
    #列表元素可以是不同数据类型
    list3 = ["red",1,True,2]
    #列表元素还可以是列表
    list4 = [[1,2],[3,4],[5,6]]
    
  3. 基本操作

    • 获取元素:通过下标

    • 修改元素:列表名[i] = 新值

      对列表来说,不能使用下标的方式给不存在的元素赋值,否则程序报错

      #将一个二维列表的行和列元素进行互换,然后存到另一个二维列表中,最后输出结果
      """
      a = [[1,2,3],[4,5,6]] -> b = [[1,2],[3,4],[5,6]]
      
      #错误代码
      a = [[1,2,3],[4,5,6]]
      b = []
      for i in range(len(a)):
          for j in range(len(a[i])):
              print(a[i][j])
      print(b)
      """
      a = [[1, 2, 3], [4, 5, 6]]
      b = []  # 用于存储转置后的矩阵
      
      # 假设a是一个非空的二维列表,且所有子列表长度相同
      for i in range(len(a[0])):  # 遍历列数,即a[0]的长度
          b.append([])  # 为b的每列创建一个空列表
      
      # 转置矩阵
      for i in range(len(a)):  # 遍历行
          for j in range(len(b)):  # 遍历列
              b[j].append(a[i][j])  # 交换行和列的元素
      
      print(b)
      
    • 增加元素

      insert(下标,值) #在列表任意位置插入元素
      append(新元素) #在列表末尾插入新元素
      
    • 删除元素

      #根据下标删除某一个元素
      del 列表名[i]
      #删除某一个元素,默认删除末尾元素
      列表名.pop(i)
      #根据值删除某一个元素
      列表名.remove("值")
      
  4. 获取列表长度:len(列表名)

  5. 获取元素个数:列表名.count(元素)

  6. 获取元素下标

    语法:列表名.index(元素)

    只返回第一次出现时的下标,如果没有找到那么就报错,因此使用起来有一定风险

  7. 合并列表

    • 语法:A.extend(B)

    将B列表合并到A列表中并且A列表已经被改变

    • C = A + B

    将A、B列表合成一个新的列表,并且A、B列表均未被改变

  8. 清空列表

    列表名.clear()

  9. 切片

    • 列表名[m:n] #截取范围[m,n)
    • 列表名[m:] #截取范围为m到结尾位置
    • 列表名[:n] #截取范围为开始到n-1
    • 列表名[:] #截取整个列表
  10. 遍历列表

    • for item in 列表名

    • enumerate()函数:可以在遍历列表的同时获得元素的下标

      语法:for index, item in enumerate(列表名)

  11. 检索列表:用来判断值是否在列表中

    item in 列表名

    item not in 列表名

  12. 颠倒顺序:列表名.reverse()

  13. 大小排序

    语法:列表名.sort(reverse = True或False)

    reverse为True则为降序排列,为False则为升序排列

  14. 数值计算

    max(列表)

    min(列表)

    sum(列表)

  15. 列表与字符串的互转

    • 列表转换为字符串: “连接符”.join(列表名)
    • 字符串转换为列表:列表名 = string.split(“分隔符”)
  16. 列表运算

    列表只有乘法和加法

    [1,2]*3 -> [1,2,1,2,1,2]
    ["红""橙""黄"]+[1,2,3] = ["红""橙""黄",1,2,3]
    
  17. 二维列表

  18. 元组

    元组是不能被改变的数据类型

    元组的创建:tuple = (元素1,元素2,元素3,·····)

  19. 实战题

    • 输入任意5个整数到一个列表中,然后求出该列表中的最大值,并输出这个最大值。

      nums = []
      for i in range(5):
          nums.append(int(input()))
      temp = 0
      for index,item in enumerate(nums):
          if index == 0:
              temp = item
          elif item > temp:
              temp = item
      
    • 输出星期数,输入一个数字(1~7),然后输出对应的星期数。

      weekdays = ["Friday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
      i = int(input())
      print(weekdays[i-1])
      

字符串

  1. 多行字符串

  2. 原始字符串

    在字符串前面加上r或者R,表示这是一个原始字符串

    print("C:\northwest\northwind")
    """
    C:
    orthwest
    orthwind
    """
    print(r"C:\northwest\northwind)
    # C:\northwest\northwind
    
    
  3. 获取某一个字符:字符串名[n]

  4. 获取字符串长度:len(字符串)

  5. 统计字符的个数:count()

    语法:字符串名.count(字符)

  6. 获取字符下标:index()

    字符串名.index(子字符串)

    找不到报错

  7. 截取字符串:字符串名[m:n]

  8. 替换字符串

    语法:字符串名.replace(old,new,n)

    old表示原字符,new表示替换字符

    n是可选参数,表示替换次数不超过n

  9. 分割字符串

    语法:字符串名.split(“分隔符”)

    默认为空格,且空格次数不限

  10. 去除首位符号:strip()

    语法:字符串名.strip(指定字符) #去除字符串首尾指定的字符,默认空格

    lstrip() 去除左边的

    rstrip() 去除右边的

  11. 大小写转换

    • 大写转小写 :字符串名.lower()
    • 小写转大写 :字符串名.upper()
    • 大写转小写,小写转大写:字符串名.swapcase()
  12. 检索字符串:判断一个字符串中是否包含另一个字符串

    • A.find(B)

      判断A是否包含B

      A.find(B,start,end) #start表示开始下标,end表示结束下标,全都省略表示检索整个字符串

    • A.startwith(B)

      判断A是否以B开头

      A.startwith(B,start,end)

    • A.endwith(B)

      判断A是否以B结尾

      A.endwith(B,start,end)

  13. 拼接字符串

    • "+"来实现

    • %s

      可以使用“%s”来实现字符串的拼接,也就是字符串的格式化

      print("绿叶学习网成立于%s年"%2015)
      
    • 字符串.format()

      print("{0}成立于{1}年".format("绿叶学习网",2015))
      
  14. 类型转换

    • 将“元组”或“字符串”转换为一个列表:list()
    • 将“列表”或“字符串”转换为一个元组:tuple()
  15. 实战演练

    #统计单词个数
    string = "As we know,rome was not built in a day"
    count = 0
    for i in string:
        if i == ' ' or i == ',':
            count += 1
    print(count+1)
    
    
    #将首字母转换为大写
    string = "a friend in need is a friend indeed"
    strs = string.split()
    for index,item in enumerate(strs):
        strs[index] = item[0].upper()+item[1:]
    print(" ".join(strs))
    
    
    #方法二
    string = "a friend in need is a friend indeed"
    result = ""
    for i in len(string):
        if i == 0:
            result += string[i].upper()
        else:
            if string[i-1] == ' ':
                result += string[i].upper()
            else:
                result += string[i]
    

字典与集合

  1. 字典的创建

    语法:字典名 = {键1:值1,键2:值2,·····}

  2. 基本操作

    • 获取某个键的值

      语法:dict.get(key) dict[key]

    • 修改某个键的值

      语法:dict[key] = value

    • 增加键值对

      语法:dict[key] = value

    • 删除键值对

      语法:del dict[key] = value

  3. 获取长度:len(dict)

  4. 清空字典:dict.clear()

  5. 复制字典:dict.copy()

  6. 检索字典

    语法:用来判断某个键是否“存在”与字典中

    key in dict

    key not in dict

  7. 获取键或值

    下面三个方法返回的是迭代器对象。

    迭代器对象有两个特性:

    • 可以使用list()函数转换成列表
    • 可以直接使用for···in···,循环对其遍历
    • 字典.keys():获取所有的键
    • 字典.values():获取所有的值
    • 字典.items():获取所有的键和值
  8. 集合操作

想创建空集合要使用set函数 set_name = set()

  • 交集 {} & {}
  • 并集 {} | {}
  • 差集 {} - {}
  1. 实战题

初始函数

数学计算

  1. 求绝对值:abs()

  2. 四舍五入:

    语法:round(x,n)

    • 参数x是一个数,n表示保留几位小数
    • 若省略n则保留整数部分
  3. 取整运算

    • 向上取整 ceil()
    • 向下取整 floor()
  4. 平方根运算 sqrt()

  5. 圆周率 math.pi

    度数表示:度数*math.pi/180

  6. 生成随机数

    • 随机整数

      语法:random.randint(x,y)

      生成随机整数n∈[x,y]

      ​ random.randrange(x,y,step)

      表示生成随机整数的范围n∈[x,y) step表示每次循环后变量增加的额值

    • 随机浮点数

      语法:random.random() 生成0~1的随机整数

      ​ random.uniform(x,y) 生成n∈[x,y)的随机整数

    • 随机序列

      语法:random.choice(seq)

      seq:列表、元组或字符串

      从序列中随机获取一个元素

      ​ random.sample(seq,n)

      从序列中随机获取n个元素组成的一个列表

      每个元素的值不同

      ​ random.shuffle(list)

      表示将一个列表的元素顺序打乱

日期时间

  1. time模块

    time.方法名()

    • 获取时间

      time() 获取时间戳

      localtime(时间戳) 将时间戳转换为本地时间,返回的是struct_time元组

      strftime(格式化字符串,本地时间) 将本地时间格式化为指定格式

    • 格式化时间

    ​ time.strftime(format,tuple)

    符号说明
    %Y
    %m
    %d
    %H小时
    %M分钟
    %s
    %a简写星期
    %A完整星期
    import time
    local = time.localtime(time.time())   #local是一个struct_time元组
    year = time.strftime("%Y",local)
    month = time.strftime("%m",local)
    
    • struct_time元组的属性
属性说明
tm_year
tm_mon
tm_mday
tm_hour
tm_min
tm_sec
tm_wday星期
tm_yday一年第几天
tm_isdst夏令时
  1. datetime模块

    • 获取日期时间

      语法:datetime.datetime.方法名()

      第一个datetime是模块名,第二个datetime是模块中的类

      result = datetime.datetime.now() #获取完整的日期时间

      date = result.date() #获取日期

      time = result.time() #获取时间

      #格式化时间

      year = result.strftime(“%Y”)

    • 设置日期时间

      语法:datetime.datetime(year,month,day,hour,minute,second)

      year、month、day是必选参数

      hour、minute、second是可选参数

  • 11
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流云枫木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值