第二期课堂笔记

python 输入与输出

input()

  • 无提示: input()
  • 带文本提示 input("提示内容")
  • 文本分割 a,b=input().spilt()

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

数位格式化 (小数位保留有效个数)

  • %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] 获取倒数第二个元素

  1. 分片提取相应部分数据

  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。如果conditionTrue,则结果为x;如果conditionFalse,则结果为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 )

5 条评论

  • @ 2024-8-22 19:51:02

    continue,break,return 的区别与理解

    continue 跳过循环

    break 跳出循环

    return 离开程序

    "跳过" 指跳过本次,下次照常运行 "跳出" 指到达指定次数便停止运行 "离开" 指停止函数里的代码

    • @ 2024-8-18 20:55:27

      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.

      • @ 2024-8-13 19:32:03

        简易判断一个数是不是整型

        a = 10.01
        if a == int(a) :
            print(int(a))
        else:
            print(f"{a:.1f}")
        

        isinstance()的使用

        isinstance() 函数来判断对象是否是一个已知类型,类似 tybe()。

        基础数据类型

        整形:int , 字符串: string , 浮点:float

        n=123
        print(tybe(n))
        n = '1234'
        print(tybe(n))
        # 综上,tybe() 显示数据类型
        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:33:07

          常量定义

          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-12 20:31:00

            四舍六入五留双

            f,d = input().split()
            f, d = float(f) ,int(d)
            ## 文本格式中的“*”是一个通配符,当代码运行时才指定保留小数点位数
            print("%.*f" %(d,f))
            ## 在f-string中可以继续使用{d}来表示通配符
            print(f"{f:.{d}f}")
            
            • 1