python开发之路【第三章】:python数字类型与字符串

数字类型

整型

表示整数,包含正数、负数、0。
Python中使用4种进制表示整型,分别为二进制、八进制、十进制和十六进制。

  • 0b1010----二进制
  • 0o12------八进制
  • 10--------十进制
  • 0xA-------十六进制

浮点型

表示小数,包含正数、负数,0.0。
浮点数一般以十进制形式表示,对于较大或较小的浮点数,可以使用科学计数法表示。

  • num_one = 3.14------# 十进制形式表示
  • num_two = 2e2-------# 科学计数法表示
  • num_third = 2e-2-----# 科学计数法表示

复数类型

复数有以下3个特点:

  1. 复数由实部和虚部构成,其一般形式为:real+imagj*1j。
  2. 实部real和虚部的imag都是浮点型。
  3. 虚部必须有后缀j或J。

Python中有两种创建复数的方式,一种是按照复数的一般形式直接创建,另一种是通过内置函数complex()创建。

  • num_one = 3 + 2j----------------# 直接创建
  • num_two = complex(3, 2)--------# 通过内置函数创建

布尔类型

Python中的布尔类型(bool)只有两个取值:True和False。
Python中的任何对象都可以转换为布尔类型,若要进行转换,符合以下条件的数据都会被转换为False:

  1. None;
  2. 任何为0的数字类型,如0、0.0、0j;
  3. 任何空序列,如''''、()、[];
  4. 任何空字典,如{};
  5. 用户定义的类实例,如类中定义了__bool__()或者__len__()。

类型转换函数

Python内置了一系列可实现强制类型转换的函数,保证用户在有需求的情况下,将目标数据转换为指定的类型。

image

  • int()函数、float()函数只能转换符合数字类型格式规范的字符串;
  • 使用int()函数将浮点数转换为整数时,若有必要会发生截断(取整)而非四舍五入。
点击查看代码
# str -> int
data01 = int("3")

# int -> str
data02 = str(5)

# str -> float
data03 = float("1.2")

# float -> str
data04 = str(1.2)

# int -> float
data05 = float(250)

# float -> int
data06 = int(1.9)
print(data06) # 1 向下取整(截断删除)

字符串

Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。

  • 使用单引号------'hello world'
  • 使用双引号------"hello world"
  • 使用三引号------"""my name is itcast
  • ----------------------my name is itcast"""

注:定义字符串时单引号与双引号可以嵌套使用,需要注意的是,使用双引号表示的字符串中允许嵌套单引号,但不允许包含双引号,同样,使用单引号表示的字符串中不允许包含单引号。

字符格式化输出

f-strings

f-strings在格式上以f或F引领字符串,字符串中使用{}标明被格式化的变量。

点击查看代码
name = '小淇'
age = 20
gender = '男'
print(f'我的名字是{name},今年{age}岁了,我的性别是:{gender}。')
"我的名字是小淇,今年20岁了,我的性别是:男。"

字符串拼接

字符串的拼接可以直接使用“+”符号实现

点击查看代码
name = "小淇"
print("您好:" + name) # 文本拼接
"您好:小淇"

字符串替换

replace()

字符串的replace()方法可使用新的子串替换目标字符串中原有的子串。
该方法的语法格式如下:
str.replace(old, new, count=None)

  • old --- 表示原有子串。
  • new --- 表示新的子串。
  • count -- 用于设定替换次数。
点击查看代码
name = "我是小淇,我今年20岁了"
print(name.replace("我", "他", 2))
"他是小淇,他今年20岁了"

字符串分割

split()

字符串的split()方法可以使用分隔符把字符串分割成序列。
该方法的语法格式如下:
str.split(sep=None, maxsplit=-1)

  • sep ------- 分隔符,默认为空格。
  • maxsplit -- 用于设定分割次数。

主:分割后返回的是一个字符串列表

点击查看代码
name = "小淇 小羽"
print(name.split())
['小淇', '小羽']

去除字符串两侧的字符

strip()

字符串对象的strip()方法一般用于去除字符串两侧的空格。
该方法的语法格式如下:
str.strip(chars=None)

  • chars -- 要去除的字符,默认为空格
点击查看代码
word = " strip "
print(word.strip())
"strip"

字符串的索引与切片

索引

字符串是一个由元素组成的序列,每个元素所处的位置是固定的,并且对应着一个位置编号,编号从0开始,依次递增1,这个位置编号被称为索引或者下标。

索引自0开始从左至右依次递增,这样的索引称为正向索引;若索引自-1开始,从右至左依次递减,则索引为反向索引。

image

image

通过索引可以获取指定位置的字符,语法格式如下:

  • 字符串[索引]

当通过索引访问字符串值时,索引的范围不能越界,否则程序会报索引越界的异常。

切片

切片是截取目标对象中一部分的操作,语法格式如下:

  • [起始:结束:步长]

切片步长默认为1。注意,切片选取的区间属于左闭右开型,切下的子串包含起始位,但不包含结束位。

点击查看代码
string = "python"
string[0:4:2]
"pt"

运算符

算术运算符

算术运算符包括+、-、*、/、//、%和**,这些运算符都是双目运算符,每个运算符可以与两个操作数组成一个表达式。

image

Python中的算术运算符支持对相同或不同类型的数字进行混合运算。

点击查看代码
>>> 3 + (3 +2j)     # 整型+复数
(6 + 2j)
>>> 3 * 4.5          # 整型+浮点型
13.5
>>> 5.5 - (2 + 3j)   # 浮点型-复数
(3.5 - 3j)
>>> True + (1 + 2j)  # 布尔类型+复数
(2 + 2j)

Python在对不同类型的对象进行运算时,会强制将对象的类型进行临时类型转换,这些转换遵循如下规律:

  1. 布尔类型进行算术运算时,被视为数值0或1;
  2. 整型与浮点型运算时,将整型转化为浮点型;
  3. 其它类型与复数运算时,将其它类型转换为复数类型。

比较运算符

比较运算符有:==、!=、>、<、>=、<=。比较运算符同样是双目运算符,它与两个操作数构成一个表达式。

image

增强运算符

“=”是基本的赋值运算符,此外“=”可与算术运算符组合成增强运算符。

image

逻辑运算符

Python中分别使用or、and、not这三个关键字作为逻辑运算“或”、“与”、“非”的运算符,其中or与and为双目运算符,not为单目运算符。

and(与)

表示并且的关系,类似串联

image

or(或)

表示或者的关系,类似并联

image

not(非)

表示取反

image

运算符优先级

为了避免含有多个运算符的表达式出现歧义,Python为每种运算符都设定了优先级。

image

默认情况下,运算符的优先级决定了复杂表达式中的哪个单一表达式先执行,但用户可使用圆括号“()”改变表达式的执行顺序。

  • 例如:(3+4)*5

练习题

1. 温度转换器:

摄氏度 = (华氏度 - 32) 除以 1.8
在终端中录入摄氏度,计算华氏度

点击查看代码
celsius = float(input("请输入摄氏度数:"))
fahrenheit = celsius * 1.8 + 32
print(f"{celsius}摄氏度等于{fahrenheit:.2f}华氏度")

2. 闰年计算

能够被4整除但是不能被100整除,或者是可以被400整除
终端中输入一个4位年份,输出true或者false

点击查看代码
year = int(input("请输入一个年份:"))
print((year % 4 == 0 and year % 100 != 0) or year % 400 == 0)

3. 单位换算

古代的称 一斤16两 在终端中获取两, 计算是几斤几两
假设: 20两 ==> 1斤4两

点击查看代码
# 1. 获取数据
num = int(input("请输入两数:"))

# 2. 逻辑计算
jin_num = num // 16
liang_num = num % 16

# 3. 格式化输出
print(f"{num}两等于{jin_num}斤{liang_num}两")

4. 计算相加和

在终端中输入一个四位数,计算每一位相加和

  1. 例如:1234 1+2+3+4=10
  2. 效果:
  3. 请输入四位整数:1234
  4. 结果是:10
点击查看代码
four_numbers = int(input("请输入一个四位整数:"))

# 取个位
ge_wei = four_numbers % 10

# 取十位
shi_wei = four_numbers // 10 % 10

# 取百位
bai_wei = four_numbers // 100 % 10

# 取千位
qian_wei = four_numbers // 1000

total = ge_wei + shi_wei + bai_wei + qian_wei

print("总和是:", total)
posted @ 2025-08-13 22:22  陈里的淇  阅读(49)  评论(0)    收藏  举报