Python基础语法

1 数据类型

1.1 整型

  • 示例
    *

    python 复制代码
      # 定义整型
      age = 18
      temp = -15
      score = 90
      
      # 打印
      print('age:', age)
      print('temp:', temp)
      print('score:', score)
      
      # 打印当前变量的类型
      print('age type:', type(age))
      
      # 值比较大时,可以使用下划线分割,便于阅读
      salary = 300_000
      house_price = 3_200_000
      graduates = 12_000_000
      
      # 打印
      print('salary:', salary)
      print('house_price:', house_price)
      print('graduates:', graduates)
  • 运行结果
    *

    复制代码
        age: 18
        temp: -15
        score: 90
        age type: <class 'int'>
        salary: 300000
        house_price: 3200000
        graduates: 12000000

1.2 浮点型

  • 示例
    *

    python 复制代码
      # 浮点型变量
      weight = 65.2
      balance = 1425.58
      out_temp = -25.2
      price = 120.0
      
      # 打印类型
      print(type(weight))
      
      # 浮点型的科学计数法表示
      speed_of_sound = 3.4e+2  # 3.4乘以10的2次方
      print(speed_of_sound)
      
      world_population = 7.8e9  # 7.8乘以10的9次方
      print(world_population)
      print(type(world_population))
      
      distance_sun_earth = 1.496E8  # 1.496乘以10的8次方
      print(distance_sun_earth)
      
      one_ml = 1e-3  # 1乘以10的-3次方
  • 打印结果
    *

    复制代码
        <class 'float'>
        340.0
        7800000000.0
        <class 'float'>
        149600000.0

1.3 字符串

  • 字符串四种定义方式

    • 示例
      *

      python 复制代码
        # 字符串四种定义方式
        
        # 方式1和2写法等价,二者都不能换行(要用圆括号才能换行),单引号用的比较多
        # 方式1,不能换行
        message1 = 'welcome to Python'
        
        # 方式2,不能换行
        message2 = "welcome to Java"
        
        # 方式3,可以换行,并且可以作为多行注释使用
        message3 = '''welcome to
        C++'''
        
        # 方式4,可以换行,也可以作为多行注释使用,还能作为文档字符串使用
        message4 = """welcome to 
        PHP"""
  • 格式化输出

    • 示例
      *

      python 复制代码
        name = '张三'
        gender = '男'
        weight = 65.2
        age = 12
        
        # 写法一
        info1 = '我叫:' + name + ',性别:' + gender
        print(info1)
        
        # 写法二
        info2 = '我叫:%s,性别:%s,体重:%f,年龄:%i' % (name, gender, weight, age)
        print(info2)
        
        # 写法三
        info3 = f'我叫:{name},性别:{gender},体重:{weight},年龄:{age}'
        print(info3)
    • 结果
      *

      复制代码
          我叫:张三,性别:男
          我叫:张三,性别:男,体重:65.200000,年龄:12
          我叫:张三,性别:男,体重:65.2,年龄:12
  • 占位符精度控制

    • %m.ns

      • m限制字符串的最小宽度,位数不够会自动使用空格补全,位数小于字符串长度则不起作用。正数右对齐,负数左对齐。
      • n为精度控制,最多输出n个字符。n大于实际字符串长度时则不起作用。
    • %m.nf

      • m控制整体宽度(整数宽度+小数点+小数宽度)。位数不够空格补,位数小于整体宽度,则自动失效。正数右对齐,负数左对齐。
      • n为精度控制,保留n位小数(n默认值为6),不够补0,截断时会四舍五入。
    • %m.nd或者%m.ni

      • m控制最小宽度,位数不够空格补,位数小于整数位数,则自动失效。正数是右对齐,负数是左对齐。
      • n为精度控制,最少用n位显示数字,位数不够用0补,位数小于正数位,则自动失效。
    • 示例
      *

      python 复制代码
        name = '张三'
        gender = '男'
        weight = 65.45
        age = 12
        
        info1 = '我叫:%s,性别:%s,体重:%f,年龄:%i' % (name, gender, weight, age)
        print(info1)
        
        # 精度控制
        info2 = '我叫:%4.1s,性别:%-3s,体重:%-5.1f,年龄:%4.4i.' % (name, gender, weight, age)
        print(info2)
    • 结果
      *

      复制代码
          我叫:张三,性别:男,体重:65.450000,年龄:12
          我叫:   张,性别:男  ,体重:65.5 ,年龄:0012.
  • 转义字符

    • 是一种在字符串中用于表示特殊含义的字符组合,通常以\开头,通常用于表示哪些在字符串中补能直接写出的字符。

    • 示例
      *

      python 复制代码
        # 使用\'输出'
        print('在python中, 可以使用\'包裹一个字符串')
        
        # 使用\"输出"
        print("在python中, 可以使用\"包裹一个字符串")
        
        # 使用\n进行换行
        print('注册会员需要以下信息:\n姓名\n年龄\n手机号')
        
        # 使用\\输出\
        print('路径:', 'F:\\study\\python\\')
        
        # 使用\b删除前一个字符
        print('helloo\b')
        
        # 使用\r使光标回到本行开头, 覆盖输出
        print('67%\r68%')
        
        # \t 水平制表符
        print('12341234123412341234')
        # 默认一个制表符占4位
        print('ab\tcdef\tgh')
        # 可以设置一个制表符占8位
        print('ab\tcdef\tgh'.expandtabs(8))
        print('我\t是中文')
    • 打印
      *

      复制代码
          在python中, 可以使用'包裹一个字符串
          在python中, 可以使用"包裹一个字符串
          注册会员需要以下信息:
          姓名
          年龄
          手机号
          路径: F:\study\python\
          hello
          68%
          12341234123412341234
          ab	cdef	gh
          ab      cdef    gh
          我	是中文

2 数据类型转换

  • 把指定数据转为字符串:str(),任何类型都可以转换为字符串。

  • 把指定数据转为整型:int()

  • 把指定数据转为浮点型:float()

  • 示例
    *

    python 复制代码
      # 使用str()将指定数据转为字符串
      result1=str(18)
      print(type(result1), result1)
      
      result2=str(12.88)
      print(type(result2), result2)
      
      # 使用int()将指定数据转为整型
      result3=int(15.6)
      print(type(result3), result3)
      
      result4=int('256')
      print(type(result4), result4)
      
      # 使用float()将指定数据转为浮点型
      result5=float('15.6')
      print(type(result5), result5)
      
      result6=float('18')
      print(type(result6), result6)
  • 结果
    *

    复制代码
        <class 'str'> 18
        <class 'str'> 12.88
        <class 'int'> 15
        <class 'int'> 256
        <class 'float'> 15.6
        <class 'float'> 18.0

3 运算符

3.1 算数运算符

运算符 说明 示例 结果
+ 9 + 7 16
- 7 - 2 5
* 3 * 4 12
/ 9 / 6 1.5
// 取整除 (取整) 9 // 6 1
% 取余 (取模) 9 % 6 3
`` 指数 2 3 8

3.2 赋值运算符

运算符 含义 示例 等价代码
= 赋值运算 age = 18 -
+= 加法赋值运算 age += 1 age = age + 1
-= 减法赋值运算 age -= 1 age = age - 1
*= 乘法赋值运算 price *= 0.8 price = price * 0.8
/= 除法赋值运算 pay /= 5 pay = pay / 5
//= 取整赋值运算 apple //= 14 apple = apple // 14
%= 取模赋值运算 seconds %= 60 seconds = seconds % 60
= 指数赋值运算 a = b a = a b

3.3 比较运算符

运算符 作用 比较结果 示例代码
== 判断左右两侧是否相等 成立为 True 不成立为 False a = 5 b = 5a == b 为 True
!= 判断左右两侧是否不等 成立为 True 不成立为 False a = 5 b = 3a != b 为 True
> 判断左侧是否大于右侧 成立为 True 不成立为 False a = 5 b = 4a > b 为 True
< 判断左侧是否小于右侧 成立为 True 不成立为 False a = 4 b = 5a < b 为 True
>= 判断左侧是否大于等于右侧 成立为 True 不成立为 False a = 5 b = 5a >= b 为 True
<= 判断左侧是否小于等于右侧 成立为 True 不成立为 False a = 6 b = 6a <= b 为 True

3.4 布尔类型

python 复制代码
  # boolean类型
  True False

3.5 逻辑运算符

运算符 名称 功能描述
and 逻辑与 判断其两侧的值,是否都为 True
or 逻辑或 判断其两侧的值,是否至少有一个为 True
not 逻辑非 用于对一个值取反

4 进制转换

写法 功能 示例
bin() 十进制转二进制字符串 bin(25)'0b11001'
oct() 十进制转八进制字符串 oct(540)'0o1034'
hex() 十进制转十六进制字符串 hex(463)'0x1cf'
int() 其他进制转十进制数字 二进制转十进制:int('0b11001', 2)25 八进制转十进制:int('0o1034', 8)540 十六进制转十进制:int('0x1cf', 16)463

5 输入输出语句

python 复制代码
  print("请输入年龄:")

  # 输入的内容都是字符串
  age = input()
  
  print(f'输入年龄为{age}')

6 流程控制

6.1 分支

  • 单分支
    *

    python 复制代码
      age = 18
    
      if age >= 18:
          print('你是成年人')
          print('成年人要上班')
      
      print('hello world')
  • 双分支
    *

    python 复制代码
      age = 16
    
      if age >= 18:
          print('你是成年人')
          print('成年人要上班')
      else:
          print('你是未成年人')
          print('未成年人要上学')
      
      print('hello world')
  • 多分支
    *

    python 复制代码
      age = int(input('请输入年龄: '))
    
      if age < 18:
          print('你是未成年人')
          print('未成年人要上学')
      elif age >= 18 and age < 65:
          print('你是未成年人')
          print('成年人要上班')
      else:
          print('你是老年人')
          print('老年人要休息')
      
      print('hello world')
  • 嵌套分支
    *

    python 复制代码
      age = int(input('请输入年龄: '))
    
      if age < 18:
          print('你是未成年人')
          print('未成年人要上学')
      elif age >= 18 and age < 65:
          if age >= 18 and age < 35:
              print("你是青年")
          elif age >= 35 and age < 45:
              print('你是中年')
          else:
              print('你是中老年')
          print('成年人要上班')
      else:
          print('你是老年人')
          print('老年人要休息')
      
      print('hello world')

6.2 循环

  • while循环
    *

    python 复制代码
      n = 6
    
      while n > 0:
          n -= 1
          print(f'当前n = {n}')
  • for循环
    *

    python 复制代码
      n = 6
      
      for n in range(n):
          n -= 1
          print(f'当前n = {n}')
  • continue与break
    *

    python 复制代码
      n = 6
    
      while n > 0:
          n -= 1
      
          # n == 3时跳过本次循环
          if n == 3:
              continue
          print(f'1号测试: 当前n = {n}')
      
      
      
      n = 6
      
      while n > 0:
          n -= 1
      
          # n == 3时退出循环
          if n == 3:
              break
          print(f'2号测试: 当前n = {n}')

7 函数

7.1 概念及分类

  • 函数(function)是组织好的、可重复使用的、用于执行特定任务的代码块。
  • Python 中函数分为三类:内置函数、模块提供的函数、自定义函数。
    • 内置函数:直接可以使用
    • 模块提供的函数:需要导入指定模块后才能使用
    • 自定义函数:程序员自己定义的函数,先定义再使用
  • 内置函数文档
  • 模块提供的函数
  • 接下来主要介绍自定义函数

7.2 基本使用

  • 函数的定义与使用
python 复制代码
  # 定义函数
  def welcome():
      print('welcome')
  
  # 调用内置函数
  print('程序开始')
  
  # 调用自定义函数
  welcome()

7.3 参数使用

  • 参数可以让函数接收外部传入的数据,能让函数更具通用性和灵活性。

  • 位置参数

    • 调用函数时,根据参数在函数定义时出现的顺序,把实参的值,依次传递给对应的形参。
    python 复制代码
      # 定义带参函数
      def student01(name, score):
          print(f'你是{name}, 成绩是{score}')
      
      # 调用带参函数 - 位置参数
      student01('Jack', 98)
      student01('Tom',96)
  • 关键字参数

    • 关键字参数:函数调用时通过形参名 = 值的形式传递的参数,就是关键字参数。
    • 关键字参数的优势是不受顺序限制。
    • 位置参数与关键字参数可以混合使用,但位置参数必须在关键字参数之前。
    python 复制代码
      # 定义带参函数
      def student01(code, name, score):
          print(f'学号{code},你是{name},成绩是{score}')
      
      # 调用带参函数 - 关键字参数
      student01(name='Jack', code=1001, score=100)
      student01(score=98, name='Tom', code=1002)
      
      # 关键字参数在位置参数之前,错误写法,会报错
      student01(score=96, 'Jack', 100)
  • 限制传参方式

    • 具体限制方式:/前面只能用『位置参数』,*后面只能用『关键字参数』。
    python 复制代码
      # 定义带参函数
      # / 前面的code只能使用位置参数,* 后面的score只能只用关键字参数
      def student01(code, /, name, *, score):
          print(f'学号{code},你是{name},成绩是{score}')
      
      # 正确调用
      student01('10010', name='Jack', score=100)
      student01('10020', 'Tom', score=98)
  • 参数默认值

    • 在定义函数时,可以通过形参名 = 值的形式,为形参设置一个默认值
    • 若调用函数时没有传入该参数的值,就使用默认值。
    • 若调用函数时传入了该参数的值,就使用传入的值。
    • 定义函数时,『默认参数』必须放在『必选参数』的后面,或者换一种说法就是:某个形参,一旦设置了默认值,那它后面的所有形参,也必须要写默认值!
    python 复制代码
      # 定义带参函数,score默认值为90
      def student01(code, name, score=90):
          print(f'学号{code},你是{name},成绩是{score}')
      
      # 调用
      student01('10010', 'Jack', 100)
      student01('10020', 'Tom')
  • 可变参数

    • 在定义函数时,如果不确定会传入多少个参数,那就可以使用可变参数,具体写法有两种
    • 使用*形参名来接收任意数量的『位置参数』,多个位置参数最终会被打包成一个『元组』。
    • 使用**形参名来接收任意数量的『关键字参数』,多个关键字参数最终会被打包成一个『字典』。
    • 『可变位置参数』和『可变关键字参数』,可以同时使用,但必须要先写『可变位置参数』。
    python 复制代码
      # 可变位置参数
      def student01(*args):
          print(args)
          print('\n')
      
      # 可变关键字参数
      def student02(**args):
          print(args)
          print('\n')
      
      # 混合使用-必须先写可变位置参数
      def student03(*args1, **args2):
          print(args1)
          print(args2)
          print('\n')
      
      # 也可以和其它参数一起使用
      def student04(name, *args1, **args2):
          print(args1)
          print(args2)
          print('\n')
      
      # 调用
      student01('10010', 'Jack', 100)
      student02(code='10020', name='Tom', score=98)
      student03('10030', name='Lucy', score=96)
      student04('10040', 'July', score=99)

7.4 特殊的字面量 None

  • None是一个特殊的字面量,用来表示:空值、无值、无意义。
  • 几个关键点
    • None的类型是NoneType。
    • None出现在布尔判断中(if判断条件、while循环条件),会被当作False来处理。
    • None不能参与任何数学运算,也不能与字符串拼接。
    • 不给函数设置返回值,那函数默认就会返回None
  • None出现最多的两个场景:
    • 函数中没有写return,或写了return但没有返回任何内容 。
    • 变量定义时,暂时还不知道要存放什么,可以先赋值为None。
python 复制代码
  msg = None
  print(type(msg))
  print(msg)

7.5 函数返回值

  • 函数返回值:函数执行完毕后,会把执行结果交给调用者,这个执行结果就是函数的返回值。
  • 使用return关键字可以设置函数的返回值,return的作用有两个,结束函数的运行和把return后面的值,作为函数的返回值。
python 复制代码
  # 获取内置函数返回值
  res1 = type('hello')
  print(f'res1 = {res1}')
  
  res2 = int(15.6)
  print(f'res2 = {res2}')
  
  
  # 定义有返回值的函数
  def myadd(data1, data2):
      sum = data1 + data2
      return sum
  
  
  # 获取自定义函数返回值
  res3 = myadd(1, 2)
  print(f'res3 = {res3}')

8 作用域

  • 全局作用域:整个.py文件最外层的范围,就是全局作用域。

  • 全局变量:写在全局作用域中的变量,就叫全局变量,全局变量在整个程序中都可以访问。

  • 局部作用域:函数的内部范围,就是局部作用域。

  • 局部变量:写在局部作用域中(函数内部)的变量,叫局部变量,它只能在当前函数中使用。

  • 示例1
    *

    python 复制代码
      # 全局变量
      data1 = 100
      data2 = 200
      
      
      def test01():
          # 局部变量
          data1 = 1234
          data3 = 300
          data4 = 400
      
          # 可以访问局部变量,也可以访问全局变量
          print(f'内部打印 data1 = {data1}') # 这里的data1是局部变量,和外面的全局变量没有关系
          print(f'内部打印 data2 = {data2}') # data2为全局变量
          print(f'内部打印 data3 = {data3}') # data3为局部变量
          print(f'内部打印 data4 = {data4}') # data4为局部变量
      
      
      test01()
      
      # 只能访问全局变量
      print(f'外部打印 data1 = {data1}')
      print(f'外部打印 data2 = {data2}')
  • 示例2
    *

    python 复制代码
      # 全局变量
      data1 = 100
      data2 = 200
      
      
      def test01():
          # 声明data1为全局变量
          global data1
          data1 = 1234
          
          # 定义局部变量
          data3 = 300
          data4 = 400
      
          # 可以访问局部变量,也可以访问全局变量
          print(f'内部打印 data1 = {data1}')
          print(f'内部打印 data2 = {data2}')
          print(f'内部打印 data3 = {data3}')
          print(f'内部打印 data4 = {data4}')
      
      
      test01()
      
      # 只能访问全局变量
      print(f'外部打印 data1 = {data1}')
      print(f'外部打印 data2 = {data2}')

9 函数递归调用

  • 递归调用,函数自己调用自己的一种操作。递归必须要具备终止条件。

  • 示例
    *

    python 复制代码
      	def welcome(n):
      	print('welcome')
      	if n > 1:
      		welcome(n-1)
      
      welcome(5)

10 函数说明文档

  • 写在函数里的文字说明,用来描述:函数的功能、需要哪些参数、返回什么结果,它的语法和普通字符串一样,用三引号包裹
python 复制代码
  def myadd(data1,data2):
      """
          函数功能: 计算两个数相加结果
          :param data1: 参数1
          :param data2: 参数2
          :return: 参数1和参数2相加结果
      """
      return data1 + data2
  
  myadd(1,2)
  • 鼠标放到调用处可以看到函数说明
相关推荐
小葱炖豆腐2 小时前
python绘制excel折线图
python·excel·numpy·pandas·matplotlib
泡泡鱼(敲代码中)3 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
Ticnix3 小时前
MCP 实战:把工具层从 Agent 里彻底解耦
python·mcp
XZ-0700014 小时前
week4-1-figure画布
python
潜创微科技4 小时前
IT6520:USB-C 转 MIPI 高集成控制器,DP 1.4a 转 MIPI 单芯片搞定 4K120 显示
c语言·开发语言·低延迟·掌机·联阳
Escalating_xu5 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
步行cgn5 小时前
Spring 注入 Map 集合详解
数据库·python·spring
傲世仙尊5 小时前
System V 进程间通信详解:共享内存、消息队列与信号量(CSDN博客)
linux·开发语言·c++
今儿敲了吗5 小时前
03停用词过滤
笔记·python