从0到1 Python基础

从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()读取的内容永远是字符串

流程控制

  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 = itemelif 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. 集合操作

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

初始函数

数学计算

  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夏令时
  2. 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是必选参数

_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是可选参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高通安卓12-安卓系统定制2

将开机动画打包到system.img里面 在目录device->qcom下面 有lito和qssi两个文件夹 现在通过QSSI的方式创建开机动画,LITO方式是一样的 首先加入自己的开机动画,制作过程看前面的部分 打开qssi.mk文件,在文件的最后加入内容 PRODUCT_CO…

Python | Leetcode Python题解之第174题地下城游戏

题目: 题解: class Solution:def calculateMinimumHP(self, dungeon: List[List[int]]) -> int:n, m len(dungeon), len(dungeon[0])BIG 10**9dp [[BIG] * (m 1) for _ in range(n 1)]dp[n][m - 1] dp[n - 1][m] 1for i in range(n - 1, -1, …

一文读懂LLM API应用开发基础(万字长文)

前言 Hello,大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者,上一篇文章中我们详细介绍了LLM开发的基本概念,包括LLM的模型、特点能力以及应用;😲 在本文中作者将通过&#xff1a…

Redis—Set数据类型及其常用命令详解

文章目录 一、Redis概述Set类型1 SADD:向集合(Set)中添加一个或多个成员2 SCARD:获取集合(Set)中成员数量3 SDIFF:获取多个集合之间的差集4 SDIFFSTORE:计算多个集合之间的差集,并将结果存储在指定的目标集合中5 SMEMB…

改进YOLO系列 | ICLR2022 | OMNI-DIMENSIONAL DYNAMIC CONVOLUTION: 全维动态卷积

YOLO系列改进 | ICLR2022 | 全维动态卷积:中文综述 简介 YOLO(You Only Look Once)是一种目标检测算法,以其速度和精度著称。 本文将介绍YOLO系列的改进,包括ICLR2022上提出的全维动态卷积(Omni-Dimensio…

2024年特种设备(起重机指挥)考试题库

31.《中华人民共和国特种设备安全法》规定,特种设备安全管理人员、检测人员和作业人员应当按照国家有关规定取得( ),方可从事相关工作。 A.合格成绩 B.相应资格 C.行业认可 答案:B 32.《中华人民共和国特种设备安全法》规定&…

数据库管理-第211期 记一次简单的SQL性能优化(20240623)

数据库管理211期 2024-06-23 数据库管理-第211期 记一次简单的SQL性能优化(20240623)1 起因2 变化3 排查问题4 优化方案1方案2方案3 5 效果总结 数据库管理-第211期 记一次简单的SQL性能优化(20240623) 作者:胖头鱼的鱼…

Android 你应该知道的学习资源 进阶之路贵在坚持

coderzheaven 覆盖各种教程,关于Android基本时案例驱动的方式。 非常推荐 thenewcircle 貌似是个培训机构,多数是收费的,不过仍然有一些free resources值得你去挖掘。 coreservlets 虽然主打不是android,但是android的教程也​ 是…

Python基础面试题解答

Python基础面试题解答 基础语法 1. Python中的变量是如何管理内存的? Python中的变量通过引用计数来管理内存。当一个变量被创建时,会分配一个内存地址,并记录引用次数。当引用次数变为0时,垃圾回收机制会自动释放该内存。 2.…

Git config命令详解

使用场景 语法 git config [<file-option>] [--type<type>] [--comment<message>] [--fixed-value] [--show-origin] [--show-scope] [-z|--null] <name> [<value> [<value-pattern>]] git config [<file-option>] [--type<typ…

Linux配置中文环境

文章目录 前言中文语言包中文输入法中文字体 前言 在Linux系统中修改为中文环境&#xff0c;通常涉及以下几个步骤&#xff1a; 中文语言包 更新源列表&#xff1a; 更新系统的软件源列表和语言环境设置&#xff0c;确保可以安装所需的语言包。 sudo apt update sudo apt ins…

华为某员工爆料:三年前985本科起薪30万,现在硕士起薪还是30w,感慨互联网行情变化

“曾经的30万年薪&#xff0c;是985本科学历的‘标配’&#xff0c;如今硕士也只值这个价&#xff1f;” 一位华为员工的爆料&#xff0c;揭开了互联网行业薪资变化的冰山一角&#xff0c;也引发了不少人的焦虑&#xff1a;互联网人才“通货膨胀”的时代&#xff0c;真的结束了…

Java基础的重点知识-04-封装

文章目录 面向对象思想封装 面向对象思想 在计算机程序设计过程中&#xff0c;参照现实中事物&#xff0c;将事物的属性特征、行为特征抽象出来&#xff0c;描述成计算机事件的设计思想。 面向对象思想的三大基本特征: 封装、继承、多态 1.类和对象 类是对象的抽象&#xff…

Python17 多进程multiprocessing

1.多进程与多线程的区别 在Python中&#xff0c;多线程&#xff08;multithreading&#xff09;和多进程&#xff08;multiprocessing&#xff09;是两种并行执行任务的方式&#xff0c;它们有一些关键的区别&#xff1a; 进程和线程的基本区别&#xff1a; 进程&#xff1a;进…

Vision Pro的3D跟踪能力:B端应用的工作流、使用教程和经验总结

Vision Pro的最新3D跟踪能力为工业、文博、营销等多个B端领域带来了革命性的交互体验。本文将详细介绍这一功能的工作流、使用教程,并结合实际经验进行总结。 第一部分:工作流详解 一、对象扫描 使用Reality Composer iPhone应用程序对目标对象进行3D扫描,如吉他或雕塑,…

Web Workers

Web Workers Web Workers 是一种HTML5技术&#xff0c;它允许网页在后台线程中运行脚本&#xff0c;从而实现了浏览器的并发处理能力&#xff0c;使得计算密集型任务可以在用户界面保持响应的同时执行&#xff0c;不会阻塞主线程。这有助于提高网页性能&#xff0c;特别是对于…

【动态规划】1130. 叶值的最小代价生成树

1130. 叶值的最小代价生成树 难度&#xff1a;中等 力扣地址&#xff1a;https://leetcode.cn/problems/minimum-cost-tree-from-leaf-values/description/ 题目内容 给你一个正整数数组 arr&#xff0c;考虑所有满足以下条件的二叉树&#xff1a; 每个节点都有 0 个或是 2 个…

全世界都在劝退学Android的程序员

上面这些原因导致一度出现三百六十行&#xff0c;行行转IT的盛况。 城里的人想出来 我记得我在逛某乎的时候&#xff0c;有几个问题经常上热榜&#xff1a; “Android开发凉了吗&#xff1f;” “程序员的出路在哪里&#xff1f;” “感觉中国的程序员前途一片灰暗&#xff0…

[信号与系统]IIR滤波器与FIR滤波器的表达、性质以及一些分析

前言 阅读本文需要阅读一些前置知识 [信号与系统]傅里叶变换、卷积定理、和为什么时域的卷积等于频域相乘。 [信号与系统]有关滤波器的一些知识背景 [信号与系统]关于LTI系统的转换方程、拉普拉斯变换和z变换 [信号与系统]关于双线性变换 IIR滤波器的数学表达式 IIR&…

Pip换源详解

Pip换源是指将pip&#xff08;Python的包管理工具&#xff09;的默认源更改为其他源。以下是关于Pip换源的详细说明&#xff1a; 一、Pip换源的原因 访问被阻止的源&#xff1a;在某些地区或网络环境下&#xff0c;直接访问官方的Python Package Index (PyPI) 可能受到限制或…