您的位置:首页 > 文旅 > 美景 > 从0到1 Python基础

从0到1 Python基础

2024/10/5 21:20:48 来源:https://blog.csdn.net/weixin_45859411/article/details/139891393  浏览:    关键词:从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是可选参数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com