Python数字与字符串,如何深入掌握?

摘要:数字类型 整型 表示整数,包含正数、负数、0。 Python中使用4种进制表示整型,分别为二进制、八进制、十进制和十六进制。 0b1010 二进制 0o12 八进制 10 十进制 0xA 十六进制 浮点型 表示小数,包含正数、负数,0.0。
数字类型 整型 表示整数,包含正数、负数、0。 Python中使用4种进制表示整型,分别为二进制、八进制、十进制和十六进制。 0b1010----二进制 0o12------八进制 10--------十进制 0xA-------十六进制 浮点型 表示小数,包含正数、负数,0.0。 浮点数一般以十进制形式表示,对于较大或较小的浮点数,可以使用科学计数法表示。 num_one = 3.14------# 十进制形式表示 num_two = 2e2-------# 科学计数法表示 num_third = 2e-2-----# 科学计数法表示 复数类型 复数有以下3个特点: 复数由实部和虚部构成,其一般形式为:real+imagj*1j。 实部real和虚部的imag都是浮点型。 虚部必须有后缀j或J。 Python中有两种创建复数的方式,一种是按照复数的一般形式直接创建,另一种是通过内置函数complex()创建。 num_one = 3 + 2j----------------# 直接创建 num_two = complex(3, 2)--------# 通过内置函数创建 布尔类型 Python中的布尔类型(bool)只有两个取值:True和False。 Python中的任何对象都可以转换为布尔类型,若要进行转换,符合以下条件的数据都会被转换为False: None; 任何为0的数字类型,如0、0.0、0j; 任何空序列,如''''、()、[]; 任何空字典,如{}; 用户定义的类实例,如类中定义了__bool__()或者__len__()。 类型转换函数 Python内置了一系列可实现强制类型转换的函数,保证用户在有需求的情况下,将目标数据转换为指定的类型。 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开始,从右至左依次递减,则索引为反向索引。 通过索引可以获取指定位置的字符,语法格式如下: 字符串[索引] 当通过索引访问字符串值时,索引的范围不能越界,否则程序会报索引越界的异常。 切片 切片是截取目标对象中一部分的操作,语法格式如下: [起始:结束:步长] 切片步长默认为1。注意,切片选取的区间属于左闭右开型,切下的子串包含起始位,但不包含结束位。 点击查看代码 string = "python" string[0:4:2] "pt" 运算符 算术运算符 算术运算符包括+、-、*、/、//、%和**,这些运算符都是双目运算符,每个运算符可以与两个操作数组成一个表达式。 Python中的算术运算符支持对相同或不同类型的数字进行混合运算。 点击查看代码 >>> 3 + (3 +2j) # 整型+复数 (6 + 2j) >>> 3 * 4.5 # 整型+浮点型 13.5 >>> 5.5 - (2 + 3j) # 浮点型-复数 (3.5 - 3j) >>> True + (1 + 2j) # 布尔类型+复数 (2 + 2j) Python在对不同类型的对象进行运算时,会强制将对象的类型进行临时类型转换,这些转换遵循如下规律: 布尔类型进行算术运算时,被视为数值0或1; 整型与浮点型运算时,将整型转化为浮点型; 其它类型与复数运算时,将其它类型转换为复数类型。 比较运算符 比较运算符有:==、!=、>、<、>=、<=。比较运算符同样是双目运算符,它与两个操作数构成一个表达式。 增强运算符 “=”是基本的赋值运算符,此外“=”可与算术运算符组合成增强运算符。 逻辑运算符 Python中分别使用or、and、not这三个关键字作为逻辑运算“或”、“与”、“非”的运算符,其中or与and为双目运算符,not为单目运算符。 and(与) 表示并且的关系,类似串联 or(或) 表示或者的关系,类似并联 not(非) 表示取反 运算符优先级 为了避免含有多个运算符的表达式出现歧义,Python为每种运算符都设定了优先级。 默认情况下,运算符的优先级决定了复杂表达式中的哪个单一表达式先执行,但用户可使用圆括号“()”改变表达式的执行顺序。 例如:(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. 计算相加和 在终端中输入一个四位数,计算每一位相加和 例如:1234 1+2+3+4=10 效果: 请输入四位整数:1234 结果是: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)