目录

一、Python语言简介

1、核心特点

2、典型应用场景

3、学习资源推荐

二、Python必备操作

1、Python注释操作

2、输入输出操作

3、格式化输出

三、变量

1、 变量

1.1 变量声明与赋值

1.2 变量命名规则

1.3 变量命名规范

2、基础数据类型

(一)字符串 

2.1字符串类型

2.1.1基本特征

2.1.2字符串输入与输出

2.1.3字符串的运算

2.2字符串的切片

2.2.1基本形式

2.2.2常见切片操作

2.3原始字符串--‘r’

2.3.1常见用途

2.3.2注意事项

2.4格式化表达式

2.4.1 占位符

2.4.2 f-string

 (二) 数字类型 --- int, float, complex

1. 整数(int)

2. 浮点数(float)

3. 复数(complex)

4. 布尔类型(bool)

5. 数字类型构造函数

6. 数字运算

7. 按位运算

8. 数字类型转换方法


昨天我们一起学习了python环境的搭建,希望大家已经顺利搭建环境并配置好工具,今天让我们一起来学习Python的基础知识--变量类型之字符串和数字类型~

在学习python的变量类型之前,我们还需要对怎么写下第一个python程序做一定的了解

首先介绍一个非常好用的工具就是我们python的官方文档:python官方文档

你可以在这里根据你的需要来选择了解学习的python版本,以及所有跟python有关的知识,后续学习中我们的学习笔记也都是基于官方文档的内容整理的~

让我们先简单了解一下python这门语言吧~

一、Python语言简介

Python是一种高级、解释型、通用的编程语言,以简洁易读的语法著称。由Guido van Rossum于1991年首次发布,支持多种编程范式(如面向对象、函数式编程),广泛应用于Web开发、数据分析、人工智能等领域。

1、核心特点

简洁性:Python通过缩进代替括号,语法接近自然语言。例如打印“Hello World”仅需一行代码:

print("Hello World")

跨平台:作为解释型语言,Python代码可在Windows、macOS、Linux等系统运行,无需重新编译。

丰富的库:标准库涵盖文件操作、网络请求等模块,第三方库(如NumPy、Django)扩展了科学计算和Web开发能力。

2、典型应用场景

  • 数据分析:借助Pandas、Matplotlib等库快速处理和分析数据。
  • 自动化脚本:编写脚本来简化重复性任务,如文件批量重命名。
  • 机器学习:TensorFlow、PyTorch等框架降低了AI模型的开发门槛。

3、学习资源推荐

  • 官方文档(python.org)提供语言规范和教程。
  • 交互式学习平台(如Codecademy)适合新手实践基础语法。

Python的低学习曲线和强大生态使其成为初学者的理想选择,同时也满足企业级开发需求。

二、Python必备操作

1、Python注释操作

Python中的注释分为单行注释和多行注释两种形式。

单行注释使用#符号,从该符号开始到行尾的内容都会被解释器忽略:

# 这是一个单行注释
print("Hello World")  # 注释也可以放在代码行尾

多行注释使用三引号(单引号或双引号),适用于需要跨多行的注释内容:

'''
这是多行注释
可以跨越多行
'''
print("Multiline comment")

2、输入输出操作

Python的输入输出主要通过print()input()函数实现。

print()函数用于输出内容到标准输出:

print("Hello")  # 简单输出
print(1, 2, 3, sep="|")  # 自定义分隔符
print("Line1", end=" ")  # 修改结束符
print("Line2") 

input()函数用于获取用户输入,返回字符串类型:

name = input("请输入姓名:")  # 获取用户输入
age = int(input("请输入年龄:"))  # 类型转换
print(f"姓名:{name},年龄:{age}")

3、格式化输出

Python提供多种格式化输出方式:

f-string格式化(推荐Python 3.6+使用):

name = "Alice"
print(f"Hello, {name}!")

format方法格式化:

print("Hello, {}!".format("Bob"))
print("{1} {0}".format("World", "Hello"))

百分号格式化(旧式):

print("Name: %s, Age: %d" % ("Charlie", 25))

现在可以输出你的第一个python程序啦

从print(“hello world”)开始~

print("hello world")

当我们刚开始学习 Python 编程时,首先接触到的内容之一就是 变量类型。Python 支持多种数据类型,其中最常用的包括 字符串数字类型(整数和浮点数)。今天我们就来详细介绍这两个变量类型,并通过代码示例帮助初学者更好地理解。

三、变量

1、 变量

在 Python 中,变量用来存储值,它是数据的引用标识符,具有动态性和可变性。你无需声明变量类型,Python 会自动根据赋给它的值来决定类型。

1.1 变量声明与赋值

声明与赋值:变量通过赋值语句来创建。

  • 语法:变量名 = 值

  • 变量名 = 数字类型
    变量名 = 表达式
    变量名1 = 变量名2 = 变量名3  = 数字类型
    变量名1, 变量名2, 变量名3  = 数字类型1, 数字类型2, 数字类型3

  • 示例:

    counter = 100  # 整型变量
    miles = 1000.0  # 浮点型变量
    name = "nihao"  # 字符串变量
1.2 变量命名规则
  • 变量名由字母、数字和下划线组成。

  • 不能以数字开头。

  • 变量名区分大小写。

  • 不能使用 Python 保留字,下图为Python的33个保留字,均不能用于变量命名。

# 合法的变量名
name = "Alice"
age = 25
one_hundred = 100

# 不合法的变量名
# 1st_name  # 不能以数字开头
# class  # 保留字
1.3 变量命名规范

1.3.1 小写字母与下划线组合
变量名通常使用小写字母,多单词时用下划线分隔(匈牙利命名法),例如 get_name_age。函数名遵循相同规则,优先使用动词+名词结构,如 update_phone

1.3.2  驼峰命名法适用场景
类名采用大驼峰形式(Pascal Case),如 MyClass。小驼峰(camel Case)如 getNameAge 可在特定语言(如Java)中使用,但Python推荐下划线分隔。

1.3.3  常量命名规则
全大写字母表示常量,单词间用下划线连接,例如 MAX_SIZE = 100。此类命名需明确不可变性。

1.3.4  命名语义化要求
名称需简短且表达完整含义,避免单字符(除循环变量)。变量名多用名词(如 student_count),函数名强调动作(如 calculate_score)。

1.3.5  特殊前缀/后缀
单下划线前缀(如 _internal_var)暗示内部使用,双下划线前缀(如 __private_var)触发Python名称改写机制。后缀避免与语言关键字冲突。

代码示例对比

# 变量命名
user_age = 25      # 匈牙利命名法
studentName = "Tom" # 小驼峰(不推荐Python)

# 函数命名
def get_user_info():  # 动词+名词
    pass

# 类命名
class DatabaseConfig:  # 大驼峰
    pass

2、基础数据类型

Python中的变量就是变量,它没有类型,我们所说的"类型"是变量指向的内存中对象的类型。 Python 中的基本数据类型包括:字符串、数字(整数、浮点数、布尔值)、容器类型(列表、元组、字典等)。

python中的数据类型:

  • 字符串 str

  • 数字

    • 整数 int

    • 浮点数 float

    • 布尔数 bool

  • 容器

    • 列表 list

    • 元组 tuple

    • 字典 dict

    • 集合 set / 固定集合 frozenset

    • 字节串 bytes / 字节数组 bytearray

按照是否可修改划分分为:

  • 不可变数据:Number(数字)、String(字符串)、Tuple(元组)

  • 可变数据:List(列表)、Dictionary(字典)、Set(集合)

(一)字符串 

2.1字符串类型

官方文档对于文本序列类型 --- str的详细介绍

用引号引起来的就是字符串,即便是或者空格

2.1.1基本特征
  • 引号包括单引号、双引号、三引号(支持多行和嵌套引号)。
  • 三引号保留格式,所见即所得。
  • 转义字符如\'\"\n\\\t
  • 原始字符串前缀r忽略转义(后续小结会对r进行详细介绍)
  • 字符串前加r表示原始字符串,不转义;
# 单引号字符串
str1 = 'Hello, World!'

# 双引号字符串
str2 = "Python is fun."

# 多行字符串(三重引号)
str3 = '''This is a 
multiline string.'''

r'c:\windows\user' #引用地址此类特殊字符串避免转移需要加上'r'
2.1.2字符串输入与输出

1、输入字符串

input() 函数

input() 用于从标准输入读取用户输入,返回字符串类型(str)。语法为 input([prompt]),其中 prompt 为可选提示信息。

name = input("请输入你的名字:")  # 用户输入 "Alice"
print(f"你好,{name}!")        # 输出:你好,Alice!

多行输入

可通过循环或 split() 处理多行输入。

# 方法1:循环读取
lines = []
while True:
    line = input("输入内容(空行结束):")
    if not line:
        break
    lines.append(line)
print("输入的内容:", "\n".join(lines))

# 方法2:一次输入多行(用特定符号分隔)
data = input("输入多个单词(用空格分隔):").split()
print("单词列表:", data)  # 如输入 "hello world",输出:['hello', 'world']

2、输出字符串

print() 函数

print() 用于向标准输出打印内容,支持多参数、分隔符(sep)、结束符(end)。

print("Hello", "World")          # 输出:Hello World(默认空格分隔)
print("Hello", "World", sep="-") # 输出:Hello-World(自定义分隔符)
print("Hello", end=" ")          # 打印 "Hello" 后不换行,用空格结尾
print("World")                   # 接着上一行的空格输出 "World"
2.1.3字符串的运算
  • 字符串拼接:我们可以用 + 运算符来连接两个字符串。

'Py'+'thon'  # 输出'Python'
  • 字符串重复:使用 * 运算符来重复字符串

'abc' * 3  # 输出'abcabcabc'
  • 字符串索引:字符串是有序的,可以通过索引来访问某个字符。索引从 0 开始,也支持负数索引,从后往前取值

  • 切片操作:通过切片语法来获取字符串的子串。

2.2字符串的切片
2.2.1基本形式


sequence[start:stop:step]
开区间:左闭右开
start:起始索引(包含),默认为 0。
stop:结束索引(不包含),默认为序列长度。
step:步长(可选),默认为 1,可以是负数(表示反向切片)。

切片操作	说明
s[start:stop]	取 [start, stop) 范围的元素
s[start:]	从 start 到末尾
s[:stop]	从开头到 stop-1
s[::step]	按 step 步长取值
s[::-1]	反转序列
s[-n:]	取最后 n 个元素
2.2.2常见切片操作

(1) 基本切片

s = "abcdefghij"
print(s[2:5])  # 'cde'(索引 2~4,不包含 5)
print(s[:5])   # 'abcde'(从头到索引 4)
print(s[5:])   # 'fghij'(从索引 5 到末尾)
print(s[:])    # 'abcdefghij'(完整复制,相当于 s.copy())

(2) 步长(step)

s = "abcdefghij"
print(s[::2])   # 'acegi'(每隔 1 个取 1 个)
print(s[1::2])  # 'bfh'(从索引 1 开始,每隔 1 个取 1 个)

(3) 负索引

Python 允许使用负数索引(从末尾开始计数,-1 是最后一个元素):

s = "abcdefghij"
print(s[-3:])   # 'hij'(最后 3 个字符)
print(s[:-3])   # 'abcdef'(除了最后 3 个字符)

(4) 反向切片(step = -1)

s = "abcdefghij"
print(s[::-1])   # 'jihgfedcba'(反转字符串)
print(s[5:2:-1]) # 'fed'(从索引 5 反向取到索引 3)

来做一个关于切片的小练习吧~

练习:

写程序,输入一个字符, 打印字符串的如下内容

  1. 打印这个字符串的第一个字符

  2. 打印这个字符串的最后一个字符串

  3. 如果这个字符串的长度是 奇数,则打印中间这个字符 用 len(x) 求字符串的长度

答案:

s = input("请输入一段文字: ")

print('第一个字符是:', s[0])
print('最后一个字符是:', s[-1])
if len(s) % 2 == 1:
    print('中间的字符是', s[len(s) // 2])
2.3原始字符串--‘r’

原始字符串:

在 Python 中,`r` 前缀表示原始字符串(Raw String),它会让字符串中的 反斜杠 `\` 不被解释为转义字符,而是作为普通字符处理。

例如:

path = "c:\windows\user\data"  # 错误!\u 会被解析为 Unicode 转义
print(path)  # 报错:SyntaxError: (unicode error) ...

而使用 r 前缀后,Python 会直接按照字面含义处理字符串:

path = r"c:\windows\user\data"  # 正确!\ 不会被转义
print(path)  # 输出:c:\windows\user\data
2.3.1常见用途
  1. 文件路径(Windows 系统) Windows 路径包含大量 \,用 r 可以避免手动转义:

    file_path = r"C:\Program Files\Python\script.py"
  2. 正则表达式 正则表达式中常有 \d\w 等特殊字符,用 r 保持原始含义:

    import re
    pattern = r"\d+"  # 匹配数字
  3. 避免转义混乱 例如打印反斜杠本身:

    print(r"反斜杠是 \ ")  # 输出:反斜杠是 \
2.3.2注意事项
  • r 仅影响反斜杠的转义行为,不影响字符串的其他部分(如引号仍需配对)。

  • 即使使用 r,字符串末尾也不能是单个 \(因为 Python 仍会尝试转义),例如:

    print(r"C:\windows\")  # 错误!SyntaxError: EOL while scanning string literal

    解决方法:

    print(r"C:\windows" + "\\")  # 拼接一个普通字符串的 \
2.4格式化表达式
2.4.1 占位符
  • 作用

    生成具有一定格式的字符串

  • 语法规则

    格式化字符串 % 参数1
    # 或者
    格式化字符串 % (参数1, 参数2, 参数3)
    
  • 占位符和类型码

    占位符和类型码 说明
    %s 转成字符串, 使用 str(x) 函数转换(常用)
    %d 转成十进制的整数(常用)
    %o 转成八进制的整数
    %x,%X 转成十六进制的整数
    %e,%E 转成指数格式的浮点数
    %f,%F 转成小数格式的浮点数(常用)
    %g,%G 转成指数格式或小数格式的浮点数
    %% 转成一个%
    %m.nf m是指总宽度,默认右对齐,加个 - 表示左对齐,n 是指保留的小数点位数
  • 示例1

  • 代码

    fmt = """
    甲方:_____%s_____
    乙方:_____%s_____
       ....... 金额:_%d__
    """
    s = fmt % ("小王", '华清', 10000)
    b = fmt % ("小红", '华清', 10000)
    ​
    print(s)
  • 输出效果:

    甲方:_____小王_____
    乙方:_____华清_____
       ....... 金额:_10000__
  • 示例2

    • 代码

      print("------%F------" % 3.1415)
      print("------%g------" % 3.1415)
      print("------%e------" % 3.1415)
      print("------%e------" % 31.415)
      print("------%g------" % 3141523274812374281342374324.23748123742183472)
      # 按照指定的宽度打印,并保留指定的小数位数
      print("------%30.2f------" % 3141523274814.23748123742183472)
      print("------%30.2f------" % 3144814.3472)
      print("------%-30.2f------" % 14)
    • 输出结果

      ------3.141500------
      ------3.1415------
      ------3.141500e+00------
      ------3.141500e+01------
      ------3.14152e+27------
      ------              3141523274814.24------
      ------                    3144814.35------
      ------14.00                         ------
2.4.2 f-string

f-string 格式化字符串以 $f$ 开头,字符串中的表达式用 {} 包起来。

x = 1
y = 2.3 
print(f'{x+1}')   #2
x = 1
print(f'{x+1=}')   #x+1=2  
​
d = 12
print(f'abc{d}') # 其中的{}中为变量或表达式
​
# 可以使用:对变量进一步格式化
pi = 3.1415
print(f'{s:.2f}') # 3.14

字符串就介绍到这里,让我们再做个练习巩固一下~ 

练习:

写一个程序,输入三行文字, 按最长的一行, 打印如下图形方框
请输入: hello
请输入: welcome to beijing 
请输入: aaaaaaa
打印:
+--------------------+
|       hello        |
| welcome to beijing |
|       aaaaaaa      |
+--------------------+ 

答案:

# 输入三行文字
line1 = input("请输入: ")
line2 = input("请输入: ")
line3 = input("请输入: ")

# 找到最长的一行的长度
max_len = max(len(line1), len(line2), len(line3))

# 打印顶部边框
print('+' + '-' * (max_len + 2) + '+')

# 打印每一行,确保每行的宽度和最大宽度一致,居中对齐
print('|', line1.center(max_len), '|')
print('|', line2.center(max_len), '|')
print('|', line3.center(max_len), '|')

# 打印底部边框
print('+' + '-' * (max_len + 2) + '+')

 (二) 数字类型 --- intfloatcomplex

官方文档对于数字类型的详细介绍

数字类型概述

Python 中有三种基本的数字类型:

  • 整数(int)

  • 浮点数(float)

  • 复数(complex)

此外,布尔值(bool) 属于整数的子类型,即 TrueFalse 实际上是整数 10

1. 整数(int)
  • 特性

    • 整数具有无限精度,只有机器的内存限制。

    • 支持普通的算术运算(+、-、*、/、**、//、%)。

    • 支持按位运算(&、|、^、~、<<、>>)。

    • 可以表示十进制、二进制、八进制和十六进制。

  • 常用函数

    • int(x):将 x 转换为整数。

    • x.bit_length():返回整数的二进制位数,不包括符号位和前导零。

    • x.bit_count():返回整数的二进制表示中 1 的个数。

    • int.to_bytes(length, byteorder='big', signed=False):返回整数的字节表示。

  • 示例

n = 37
print(n.bit_length())  # 输出 6,表示 37 的二进制长度
print(bin(n))  # 输出 '0b100101'
  • 进制表示

    • 二进制:以 0b 开头,例如:0b101

    • 八进制:以 0o 开头,例如:0o11

    • 十六进制:以 0x 开头,例如:0x1f

位权表示法--进制之间的转换方法:

可以参考:最强干货】详解二进制,八进制,十进制,十六进制的相互转换


2. 浮点数(float)
  • 特性

    • 浮点数表示实数,通常使用 C 中的 double 来实现。

    • 浮点数的精度与机器有关,可以通过 sys.float_info 查看当前机器的浮点数精度和表示方式。

    • 浮点数可以表示无穷大、NaN(非数字)。

    • 自动转换:当浮点数与整数运算时,整数会转换为浮点数,得到的结果也是浮点数。

  • 常用函数

    • float(x):将 x 转换为浮点数。

    • float.is_integer():判断浮点数是否为整数。

    • float.hex():返回浮点数的十六进制表示。

    • float.fromhex(s):将十六进制字符串 s 转换为浮点数。

    • float.as_integer_ratio():返回浮点数的最简整数比。

  • 示例

    n = 3.14
    print(n.is_integer())  # 输出 False
    print(n.hex())  # 输出 '0x1.91eb86p+1'
    

3. 复数(complex)
  • 特性

    • 复数包含实部和虚部,均为浮点数。

    • 可以使用 jJ 来表示虚部,例如:1 + 2j

    • 可以通过 z.real 获取复数的实部,通过 z.imag 获取复数的虚部。

  • 常用函数

    • complex(re, im):创建一个复数 re + im * j,其中 re 为实部,im 为虚部,默认为 0。

    • z.real:返回复数 z 的实部。

    • z.imag:返回复数 z 的虚部。

    • z.conjugate():返回复数 z 的共轭复数。

  • 示例

    z = 3 + 4j
    print(z.real)  # 输出 3.0
    print(z.imag)  # 输出 4.0
    print(z.conjugate())  # 输出 (3-4j)
    
    4. 布尔类型(bool)
  • 特性

    • boolint 的子类,TrueFalse 分别等同于整数 10

    • 可用于逻辑运算(andornot),但也支持按位运算(&|^)。

    • 推荐:使用逻辑运算符(andor)而不是按位运算符(&|)来处理布尔值。

5. 数字类型构造函数

int()、float() 和 complex() 是 Python 中用于构造特定类型数字的内置函数。

  • int(x):将 x 转换为整数。如果 x 是浮点数,会截断小数部分。
  • float(x):将 x 转换为浮点数。
  • complex(re, im):构造一个复数,re 为实部,im 为虚部(默认为 0)。
6. 数字运算

所有数字类型(复数除外)支持以下运算:

运算

结果:

备注

完整文档

x + y

x 和 y 的和

x - y

x 和 y 的差

x * y

x 和 y 的乘积

x / y

x 和 y 的商

x // y

x 和 y 的商数

(1)(2)

x % y

x / y 的余数

(2)

-x

x 取反

+x

x 不变

abs(x)

x 的绝对值或大小

abs()

int(x)

将 x 转换为整数

(3)(6)

int()

float(x)

将 x 转换为浮点数

(4)(6)

float()

complex(re, im)

一个带有实部 re 和虚部 im 的复数。im 默认为0。

(6)

complex()

c.conjugate()

复数 c 的共轭

divmod(x, y)

(x // y, x % y)

(2)

divmod()

pow(x, y)

x 的 y 次幂

(5)

pow()

x ** y

x 的 y 次幂

(5)

注意事项

  • 地板除法 (//) 的结果类型取决于操作数类型。对于 int 操作数结果为 int,对于 float 操作数结果为 float

  • 复数不支持 //% 运算。

  • float 转换为 int 会截断小数部分。

  • float 可以接受字符串 "nan""inf" 表示非数字和无穷。

  • pow(0, 0)0 ** 0 定义为 1。

  • 数字字面值可以包含 Unicode 数字字符(具有 Nd 属性的码位)。

7. 按位运算

按位运算直接对整数在二进制位级别进行操作。这些运算适用于所有整数类型,包括正数和负数,采用二的补码表示法。

按位或运算 |

对两个整数的每一位进行或操作。只要对应位中有一个为1,结果位即为1。

a = 5    # 0101
b = 3    # 0011
a | b    # 结果为7 (0111)

按位异或运算 ^

对两个整数的每一位进行异或操作。对应位不同时结果为1,相同时为0。

a = 5    # 0101
b = 3    # 0011
a ^ b    # 结果为6 (0110)

按位与运算 &

对两个整数的每一位进行与操作。只有对应位都为1时,结果位才为1。

a = 5    # 0101
b = 3    # 0011
a & b    # 结果为1 (0001)

左移运算 <<

将二进制位向左移动指定位数,低位补0。每左移一位相当于乘以2。

x = 4     # 0100
x << 2    # 结果为16 (10000)

右移运算 >>

将二进制位向右移动指定位数,高位补符号位(算术右移)。每右移一位相当于整除2。

x = 8     # 1000
x >> 2    # 结果为2 (0010)
x = -8
x >> 2    # 结果为-2 (保留符号位)

按位取反运算 ~

对整数所有二进制位取反(包括符号位),相当于 -(x+1)

x = 5     # 0101
~x        # 结果为-6 (1010)

注意事项

  1. 移位位数限制:移位数必须为非负整数,否则引发ValueError

  2. 溢出处理:Python整数无固定位数限制,不会发生传统溢出。

  3. 效率特性:位运算通常比算术运算效率更高,适合底层优化。

优先级规则

按位运算符优先级按以下顺序递增:

|  →  ^  →  &  →  <<  →  >>  →  ~

所有按位运算优先级低于算术运算,但高于比较运算。

8. 数字类型转换方法

二进制、八进制、十六进制表示法
数字前缀使用0b表示二进制(如0b1010),0o表示八进制(如0o12),0x表示十六进制(如0xA)。

二进制转换
bin(x)函数将十进制整数x转换为二进制字符串,例如:

bin(10)  # 返回 '0b1010'

八进制转换
oct(x)函数将十进制整数x转换为八进制字符串,例如:

oct(10)  # 返回 '0o12'

十进制转换
int(x[, base=10])函数将字符串或数字x转换为十进制整数。可选参数base指定进制(2-36),例如:

int('0b1010', 2)  # 返回 10
int('0xA', 16)    # 返回 10

十六进制转换
hex(x)函数将十进制整数x转换为十六进制字符串,例如:

hex(10)  # 返回 '0xa'

浮点数转换
float(x)函数将整数或字符串x转换为浮点数,例如:

float('3.14')  # 返回 3.14

复数转换
complex(x)生成实部为x、虚部为0的复数;complex(x, y)生成实部为x、虚部为y的复数,例如:

complex(3)    # 返回 (3+0j)
complex(2, 3) # 返回 (2+3j)

布尔值转换
bool(x)函数根据x的真值返回TrueFalse。非零数字、非空序列等为True,否则为False,例如:

bool(0)  # 返回 False
bool(1)  # 返回 True

 小编有感,写在最后:学习一门编程语言,真的不容易呀,知识盘根交错,环环相扣,希望今天的笔记可以帮助你更好的了解Python的基础变量类型之字符串和数字类型,我们一起加油~

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐