Python 基础核心语法:输入输出、变量、注释与字符串操作

发布于:2025-06-08 ⋅ 阅读:(18) ⋅ 点赞:(0)
  • 输入与输出:

    • print() 用于输出内容。

    • input() 用于获取用户输入,返回值为字符串。

    • 示例:name = input("请输入姓名: ")

  • 变量:

    • 为数据(值)起别名。

    • 命名规范: 只能包含字母、数字、下划线;不能以数字开头;不能是Python内置关键字。

    • 赋值 vs. 比较: = 是赋值,== 是比较(返回 TrueFalse)。

      • 示例:v1 = v2 == 2 会先计算 v2 == 2 的布尔结果,再赋值给 v1

  • 条件语句 (if/elif/else):

    • 实现程序中的条件分支逻辑。

    • 格式: if condition: (条件后跟冒号,下一行开始缩进)

    • 支持多条件判断 (elif) 和不满足所有条件时的处理 (else)。

    • 支持嵌套使用。

  • 循环语句 (while/for):

    • 实现重复执行代码块的功能。

    • while 循环:适用于未知循环次数的情况。

    • for 循环:常与 range() 结合使用,适用于已知循环次数的情况。

    • break 关键字:用于跳出当前循环。

注释 (#, """Docstrings""")

  • 作用: 对代码进行说明或备注,被解释器忽略,不影响程序运行。

  • 单行注释: 使用 #。可以单独一行,也可以在代码行尾。

    • 示例:# 这是一个单行注释name = "张三" # 用户姓名

  • 多行注释: 使用三对双引号 """ 或三对单引号 ''' 包裹。常用于文件或功能块的开头说明。

    • 示例:"""\n这个函数用于处理用户注册\n包含姓名、密码等信息。\n"""

  • 快捷键: 选中代码行,按 Ctrl + / (Windows) 或 Cmd + / (Mac) 快速添加/取消注释。

pass 关键字

  • 作用: 占位符,表示“什么都不做”。

  • 用途: 当语法要求在某个代码块(如 ifwhile、函数定义、类定义等)中必须有内容,但你暂时不想写任何逻辑时,可以使用 pass 来保持语法的完整性,避免报错。

    • 示例:if condition: pass

字符串格式化(拼接的替代方法)

  • 比直接使用 + 拼接字符串更灵活、简洁。

  • 1. str.format() 方法(推荐):

    • 占位符: 使用 {}

    • 位置占位符: {0}, {1} 等,按 .format() 中参数的索引填充,可重复使用。

      • 示例:'我叫{0},今年{1}岁。邮箱是{0}@example.com'.format('张三', 18)

    • 不带序号占位符: {},按 .format() 中参数的顺序填充。

      • 示例:'我叫{},今年{}岁。'.format('张三', 18)

    • 命名占位符: {name},通过 .format(name='value') 传入具名参数。

      • 示例:'我叫{name},今年{age}岁。'.format(name='张三', age=18)

  • 2. % 运算符(早期Python版本常用):

    • 类似C语言的格式化方式。

    • 占位符: %s(字符串),%d(整数)。

    • 示例:'我叫%s,今年%d岁。' % ('张三', 18)

  • 3. f-string(Python 3.6+ 新增):

    • 在字符串前加 fF,直接在 {} 中嵌入变量名或表达式。

    • 示例:name = '张三'; age = 18; print(f'我叫{name},今年{age}岁。')

字符串操作

  • 每种数据类型都有其独特的存储方式和功能。

    • 重要原则: 字符串的独有方法通常会生成新的字符串作为结果,而不改变原始字符串

    • 公共功能: 某些函数(如 len())可用于多种数据类型,返回其长度或元素数量。

  • 字符串 (str) 独有方法:

    • str.upper() 返回字符串的大写版本。

      • 示例:"root".upper() -> "ROOT"

    • str.lower() 返回字符串的小写版本。

      • 示例:"ROOT".lower() -> "root"

      • 应用场景: 用户输入不区分大小写时的统一处理(如判断输入 qQ 终止程序)。

    • str.isdecimal() 判断字符串是否只包含十进制数字(TrueFalse)。

      • 应用场景: 在将用户输入字符串转换为整数前进行校验,避免 ValueError

        • 示例:if user_input.isdecimal(): num = int(user_input)

    • str.startswith(prefix) 判断字符串是否以指定 prefix 开头(TrueFalse)。

      • 示例:"北京欢迎你".startswith("北京") -> True

    • str.endswith(suffix) 判断字符串是否以指定 suffix 结尾(TrueFalse)。

      • 示例:"my_image.png".endswith(".png") -> True

    • str.replace(old, new) 将字符串中所有 old 子串替换为 new 子串,返回新字符串。

      • 示例:"我是移动用户".replace("移动", "联通") -> "我是联通用户"

      • 可以链式调用:text.replace("移动", "联通").replace("联通", "电信")

      • 也可以将新结果重新赋值给原变量:text = text.replace("移动", "联通")

    • str.split(delimiter, maxsplit=N) 根据 delimiter(分隔符)将字符串切割成列表

      • delimiter 不传默认按空格切割。

      • maxsplit 可限制切割次数,从左到右。

      • str.rsplit(delimiter, maxsplit=N):从右往左切割。

      • 应用场景:

        • 从文件名中提取扩展名。

          • 示例:"file.name.ext".rsplit('.', 1)从字符串的右侧开始分割,参数 '.' 表示以点号作为分隔符,1 表示只分割一次。执行后会返回一个列表,列表的第一个元素是文件名主体(不包含最后一个点号及其后的扩展名部分),即"file.name",第二个元素是扩展名部分,即"ext" 。

        • 解析逗号分隔的数据。

          • 示例:"张三,18,zhangsan@qq.com".split(',') -> ['张三', '18', 'zhangsan@qq.com']

    • str.join(iterable) 使用字符串本身作为连接符,将可迭代对象(如列表)中的元素连接成一个新字符串。

      • split()join() 互为逆操作。

      • 示例:",".join(['张三', '李四', '王五']) -> "张三,李四,王五"

      • 应用场景: 将注册用户列表拼接成展示字符串。


网站公告

今日签到

点亮在社区的每一天
去签到