- 分享
2024暑假班 python 第二期笔记
- 2024-8-10 20:25:34 @
第二期课堂笔记
一、python 输入与输出
input()
-
无提示:
input()
-
带文本提示
input("提示内容")
-
文本分割
a,b=input().split()
print()
- 直接输出,可以输出文本、数字、浮点等数据类型
print('文本',123,3.14)
- 可以直接做数学运算
print(123 + 456)
- 支持多参数,输出时每个数据以“空格”分隔 ,可以用关键字参数sep="" 调整为空或其它字符
print(a,b,sep="")
- print输出后,默认换行(\n),可以用关键字参数 end="\n" 来调整为一行或其它字符
print(123456,end="")
f-string 文本格式化 format
- print(f"") 或 print("".format())
print(f"a={a} b={b}
【推荐用法】
等效于
print("a={} b={}".format(a,b)
数位格式化(小数位保留有效个数)
-
%d
整型输出 -
%f
浮点型输出 -
%s
字符串输出 -
%b
、%d
、%o
、%x
分别是二进制、十进制、八进制、十六进制。 -
^
,<
,>
分别是居中、左对齐、右对齐,后面带宽度,:
号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
二、数据转换
int() 、 str() 、 float()
- int 整形
- string 文本
- float 浮点(小数)
三、map() 映射转换
a,b = map(int , input().split())
四、字符串索引
字符串是字符的有序集合,可以通过其位置来获得具体的元素。在 python 中,字符串中的字符是通过索引来提取的,索引从 0 开始。
python 可以取负值,表示从末尾提取,最后一个为 -1,倒数第二个为 -2,即程序认为可以从结束处反向计数。
下面是对 python 索引和切片的总结:
1. 索引获取特定偏移的元素
字符串中第一个元素的偏移为 0
字符串中最后一个元素的偏移为-1
str[0] 获取第一个元素
str[-2] 获取倒数第二个元素
2. 分片提取相应部分数据
通常上边界不包括在提取字符串内 如果没有指定值,则分片的边界默认为0和序列的长度
str[1:3 ]获取从偏移为1的字符一直到偏移为3的字符串,不包括偏移为3的字符串 : "tr"
str[1:] 获取从偏移为1的字符一直到字符串的最后一个字符(包括最后一个字符): "tring"
str[:3] 获取从偏移为0的字符一直到偏移为3的字符串,不包括偏移为3的字符串 : "str"
str[:-1] 获取从偏移为0的字符一直到最后一个字符(不包括最后一个字符串): "strin"
str[:] 获取字符串从开始到结尾的所有元素 : "string"
str[-3:-1] 获取偏移为 -3 到偏移为 -1 的字符,不包括偏移为 -1 的字符 : "in"
str[-1:-3] 和 str[2:0] 获取的为空字符,系统不提示错误: ""
分片的时候还可以增加一个步长,str[::2] 输出的结果为: "srn"
使用切片,反转数据实现判断回文数
a,b= map(int,input().split())
sum = str(a+b)
print(sum)
if( sum == sum[::-1] ):
print("Yes")
else:
print("No")
切片语法
list[begin:end:step]
step 中的正负值符号用于表示,切片方向:正值从左到右,负值从右到左
step= -1 即从后往前取值如: str[::-1] 获得反转数
取余运算
除法运算: 使用 /
结果可能产生小数(float)
整除运算: 使用 //
结果只会保争留商的部分,余数会被舍弃
//
也叫“地板除” 向负无穷靠近 如: -4 // 3 => -2
int()
取整操作 向零靠近 如: int(-1.3) => -1
取模操作 %
,现阶段可以等同于取余数
实际应用: 如: 35605 秒 等于几时几分几秒
n = 35605
m = n % 3600
print(f"{n // 3600 }:{m // 60}:{m%60}")
不用函数实现四舍五入
round()
加 0.5 实现 >0.5 数自动进位,小于0.5 的保持不进位
0.5 = > 0.5 + 0.5 = > 1.0
0.6 => 0.6 + 0.5 => 1.1
0.8 => 0.8 + 0.5 => 1.3
0.4 => 0.4 + 0.5 => 0.9
0.3 => 0.3 + 0.5 => 0.8
11 = > 10
15 => 20
保留十位数对个位进行四舍五入
a = (a+5) // 10 * 10
保留到百位数
a = (a+50) // 100 * 100
不用条件判断实现向上取整
【需求】 每500克加收超重费4元,不足500克部分按500克计算;
设对 x 进行向上取整
(x + 500 -1) // 500 * 4
三目运算
在 Python 中,三目运算符是通过条件表达式实现的,其语法为:
x if condition else y
这个表达式会根据 condition
的布尔值选择 x
或 y
。如果 condition
为 True
,则结果为 x
;如果 condition
为 False
,则结果为 y
# 示例1: 判断年龄是否大于18
age = 20
status = "Adult" if age >= 18 else "Minor"
print(status) # 输出: Adult
# 示例2: 计算最大值
a = 5
b = 10
max_value = a if a > b else b
print(max_value) # 输出: 10
运算符的运算优先级
( 低) -- ------------------------------------------------ -- (高)
赋值运算符 => 逻辑运算符 => 关系运算符 => 算术运算符
a= , += , /= and,or,not >= == < * / + -
闰年算法:
if( y % 400 == 0 or y % 4 == 0 and y % 100 != 0 )
6 条评论
-
symo LV 10 MOD @ 2024-8-18 20:54:36已修改
📖 match case基本语法概览
语法结构解析 在Python 3.10及更高版本中,
match-case
语句引入了一种新的模式匹配机制,它类似于其他语言中的switch-case
结构,但更加强大和灵活。match-case允许开发者通过模式匹配来进行复杂的条件判断 ,而不仅仅是简单的值比较。这不仅提高了代码的可读性,还提供了更丰富的表达能力。判断月份 match m : case 1 | 3 | 5 | 7 | 8 | 10 |12: d = 31 case 2: d=28 case 4|6|9|11: d=30 case _ : d = 0 # print("月份错误")
_
表示默认情况,|
表示并列的情况 case 可以用于,整型、字符串,数据类型判断等情况。匹配整型与浮点型 在使用match-case语句时,我们可以针对不同的数据类型设计特定的模式匹配逻辑。例如 ,对于整型和浮点型,我们可以分别定义匹配条件,以便根据数值的类型执行不同的操作。
示例代码:匹配整型与浮点型
def process_number(number): match number: case int(): print("This is an integer.") case float(): print("This is a floating point number.") case _: print("Not a number.") process_number(42) process_number(3.14)
输出:
This is an integer.
This is a floating point number.
🤣 1 -
2024-8-14 20:04:56@
回文数
是正着读和反着读都一样的数字,例如121或1331。三位数的回文数:
aba = 判断 百位=个位,那这个数一定是回文数
# 字符串处理方法 str = 343 if(str[0] == str[2] ) # 求商取余法 n = 343 gw = n % 10 => 3 n = n // 10 => 34 sw = n % 10 => 4 n = n // 10 => 3 bw = n % 10 => 3
水仙花数(或自恋数)
是一个数等于其各位数字的立方和,例如1 5 3(1³ + 5³ + 3³ = 153)。1 + 125 + 27 = 153
玫瑰花数
通常指的是一个数等于其各位数字的五次方和,例如4150(4⁵ + 1⁵ + 5⁵ + 0⁵ = 4150)。这些都是在数字理论中很有趣的概念。1 3 5 8 13 21
-
2024-8-13 19:30:31@
简易判断一个数是不是整型
a = 10.01 if a == int(a) : print(int(a)) else: print(f"{a:.1f}")
isinstance()的使用
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
基础数据类型
整型:int , 字符串 string , 浮点:float
n = 123 print(type(n)) n = '1234' print(type(n)) # 综上,type() 显示数据类型 print("*"*30) zx = "123" ans = isinstance(zx,int) print(ans) ans = isinstance(zx,str) print(ans)
isinstance 用于判断指定对象是否为指定基础类型
输出结果:
<class 'int'> <class 'str'> ****************************** False True
-
2024-8-12 20:28:41@
四舍六入五留双
动态指定小数保留位数的方法:
f,d = input().split() f, d = float(f) ,int(d) ## 文本格式中的“*”是一个通配符,当代码运行时才指定保留小数点位数 print("%.*f" %(d,f)) ## 在f-string中可以继续使用{d}来表示通配符 print(f"{f:.{d}f}")
-
2024-8-12 19:50:46@
常量定义
PI = 3.14159 # const 伪常量 # 常量通常全部大写字母来命名(约定优于配置) r = float(input()) d = PI*r # 直径 c = PI*d # 周长 s = PI*r*r # 面积 print(f"直径为:{d:.4f} 周长为:{c:.4f} 面积为:{s:.4f}") print("直径为:%.4f 周长为:%.4f 面积为%.4f" %(d,c,s) )
-
2024-8-11 20:56:24@
格式化示例
print("整数:%d,%d,%d" % (1, 22.22, 33)) print("整数不足5位,左边补空格 %5d " % 22) print("整数不足5位,左边补0 %05d " % 22) print("整数不足5位,右边补空格 %-5d " % 22, "end") print("八进制 %o" % 222) print("十六进制 %x" % 12)
输出结果:
整数:1,22,33 整数不足5位,左边补空格 22 整数不足5位,左边补0 00022 整数不足5位,右边补空格 22 end 八进制 336 十六进制 c
- 1