05.python中输入(input)、字符串的大小写、strip()

Python 中输入(input)、字符串的大小写、strip() 完全指南

第一部分:输入 —— input()

一、input() 是什么?

input() 是 Python 的内置函数,用来在程序运行过程中从用户那里获取输入。

  • 程序执行到 input() 时会暂停,等待用户在终端(或运行窗口)里输入内容
  • 用户输入完毕按 回车 后,input() 会把用户输入的内容当作一个字符串返回
  • 你可以用变量接住这个字符串,再在程序里使用

最简单的例子:

name = input("请输入你的名字:")
print("你好,", name, "!")

运行后:

  1. 屏幕先显示:请输入你的名字:
  2. 用户输入比如 小明 然后回车
  3. 程序输出:你好, 小明 !

二、input() 的基本用法

2.1 语法格式

变量 = input(提示文字)
  • 提示文字:可选。会先显示在屏幕上,告诉用户该输入什么
  • 返回值:用户输入的那一行内容(一定是字符串类型 str),不包含回车

示例:

# 有提示
age = input("请输入年龄:")
print("你输入的是:", age)
print("类型是:", type(age))   # <class 'str'>,注意是字符串!

# 无提示(不推荐,用户不知道要输入什么)
city = input()
print("城市:", city)

2.2 重要:input() 得到的一定是字符串

即使用户输入的是数字,input() 返回的也是字符串,不能直接做数学运算。

a = input("请输入一个数:")   # 假设用户输入 10
b = input("再输入一个数:")   # 假设用户输入 5
# print(a + b)   # 错误!会得到 "105"(字符串拼接),不是 15
# print(a - b)   # 错误!字符串不能做减法

# 正确:先转成整数或小数再运算
a = int(a)
b = int(b)
print("和:", a + b)   # 15
print("差:", a - b)   # 5

三、input() 与类型转换

要把用户输入的“数字”拿来计算,需要先用 int()float() 转换。

3.1 转成整数:int()

s = input("请输入年龄:")   # 用户输入 18
age = int(s)
print(age + 1)   # 19

# 也可以一行写(适合确定用户会输入合法数字时)
age = int(input("请输入年龄:"))
print("明年你", age + 1, "岁")

注意: 如果用户输入的不是整数形式(如 abc18.5),int(...) 会报错。后面学异常处理时可以捕获这类错误。

3.2 转成小数:float()

s = input("请输入价格:")   # 用户输入 19.5
price = float(s)
print(price * 2)   # 39.0

# 一行写法
height = float(input("请输入身高(米):"))
print("身高:", height, "米")

3.3 保持字符串:不需要转换

如果只是要用户输入名字、地址等文字,直接用即可,不需要 int/float。

name = input("请输入姓名:")
print("欢迎,", name)

四、input() 使用示例汇总

示例 1:简单问候

name = input("你叫什么名字?")
print("你好,", name, "!很高兴认识你。")

示例 2:输入两个数求和

a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
print("两数之和:", a + b)

示例 3:输入小数并计算

price = float(input("请输入单价:"))
num = int(input("请输入数量:"))
total = price * num
print("总价:", total)

示例 4:输入字符串并拼接

first = input("请输入姓:")
last = input("请输入名:")
full = first + last
print("全名:", full)

五、input() 常见问题

1. 用户直接回车(不输入任何内容)

  • input() 会返回空字符串 "",不会报错
  • 若后面用 int("") 会报错,可以在学完 if 后做“是否为空”的判断

2. 在 PyCharm 或终端里输入时

  • 输入内容后一定要按 回车,程序才会继续
  • 输入的内容会显示在“运行”窗口或命令行里

3. 提示文字可以是空

  • input() 可以不带参数:x = input(),但用户不知道要输入什么,所以一般都会写提示

第二部分:字符串的大小写

在 Python 里,字符串有一组和大小写有关的方法,用来把字母变成全大写、全小写或首字母大写等。中文、数字、符号不受影响。

六、upper() —— 全部转成大写

用法: 字符串.upper()
作用: 把字符串里的所有英文字母都变成大写,得到新字符串,不修改原字符串。

s = "Hello Python"
print(s.upper())   # HELLO PYTHON
print(s)           # Hello Python(原来的 s 没变)

# 想“保存”结果,要赋给变量
s = "Hello Python"
big = s.upper()
print(big)   # HELLO PYTHON

示例:不区分大小写比较

answer = input("请输入 yes 或 no:")
if answer.upper() == "YES":
    print("你选择了是")
# 这样用户输入 yes、YES、Yes 都能被识别

七、lower() —— 全部转成小写

用法: 字符串.lower()
作用: 把字符串里的所有英文字母都变成小写。

s = "Hello Python"
print(s.lower())   # hello python
print(s)           # Hello Python(原字符串不变)

# 常见用途:统一转成小写再比较
code = input("请输入验证码:")
if code.lower() == "abcd":
    print("验证码正确")

八、capitalize() —— 整个字符串首字母大写,其余小写

用法: 字符串.capitalize()
作用: 第一个字符大写,其余字母小写(只影响字母)。

s = "hello WORLD"
print(s.capitalize())   # Hello world

九、title() —— 每个单词首字母大写

用法: 字符串.title()
作用: 把字符串中每个单词的首字母变成大写,其余字母小写(以空格等分隔的算不同“单词”)。

s = "hello world python"
print(s.title())   # Hello World Python

s = "it's a good day"
print(s.title())   # It'S A Good Day(注意:it's 里的 S 也会被大写,这是按“单词”来的)

十、swapcase() —— 大小写互换

用法: 字符串.swapcase()
作用: 原来大写的变小写,原来小写的变大写。

s = "Hello Python"
print(s.swapcase())   # hELLO pYTHON

十一、大小写方法小结

方法 作用 示例
s.upper() 全变大写 "Hi".upper()"HI"
s.lower() 全变小写 "Hi".lower()"hi"
s.capitalize() 首字母大写,其余小写 "hi".capitalize()"Hi"
s.title() 每个单词首字母大写 "hi there".title()"Hi There"
s.swapcase() 大小写互换 "Hi".swapcase()"hI"

注意: 这些方法都不修改原字符串,而是返回一个新字符串。要保留结果需要赋给变量或直接使用返回值。

s = "  Hello  "
s.upper()      # 只是得到 "  HELLO  ",没有赋给谁,结果被丢弃
print(s)       # 还是 "  Hello  "
s = s.upper()  # 把结果赋回 s,s 才变成 "  HELLO  "
print(s)       #   HELLO

十二、大小写与 input() 结合示例

示例:统一按小写判断

choice = input("继续吗?(y/n):")
if choice.lower() == "y":
    print("继续")
elif choice.lower() == "n":
    print("退出")
else:
    print("请输入 y 或 n")

示例:把用户输入的名字格式化成“首字母大写”

name = input("请输入姓名:")
name = name.strip().capitalize()   # 先去空格,再首字母大写
print("你好,", name, "!")

第三部分:strip() 去空格

用户用 input() 输入时,经常会在前面或后面多按空格。这些空格有时会导致比较或显示不好看,可以用 strip() 去掉。

十三、strip() —— 去掉两端空白

用法: 字符串.strip()
作用: 去掉字符串最左边最右边的空白字符(空格、制表符 t、换行符 n 等),不改变中间的空白,返回新字符串。

s = "   Hello Python   "
print(s.strip())   # Hello Python(左右空格没了)
print(s)           #    Hello Python   (原字符串没变)

# 常见:处理 input 的输入
name = input("请输入名字:")
name = name.strip()
print("[" + name + "]")   # 用方括号可以看出前后是否还有空格

示例:有无 strip 的对比

# 用户输入 "  小明  "(前后有空格)
name = input("请输入名字:")
# 不 strip
if name == "小明":
    print("欢迎")   # 不会执行!因为 "  小明  " != "小明"
# 用 strip
name = name.strip()
if name == "小明":
    print("欢迎")   # 会执行

十四、lstrip() 和 rstrip()

有时只需要去掉一侧的空白:

  • lstrip():只去掉左边(开头)的空白
  • rstrip():只去掉右边(末尾)的空白
s = "   Hello   "
print(s.lstrip())   # "Hello   "
print(s.rstrip())   # "   Hello"
print(s.strip())    # "Hello"

示例:只去掉末尾换行(如读文件时)

line = "一行文字n"
line = line.rstrip()   # 去掉末尾的 n
print(repr(line))      # '一行文字'

十五、strip(字符) —— 去掉指定的字符(进阶)

用法: 字符串.strip(字符)
作用: 去掉两端出现的、在“字符”里的任意字符(不是去掉一整段,而是从左从右逐个去掉在集合里的字符)。

s = "***Hello***"
print(s.strip("*"))   # Hello

s = "abcHelloabc"
print(s.strip("abc"))   # Hello(两端只要在 "a","b","c" 里的都会被去掉)
s = "aqbcHelloabqc"
print(s.strip("abc"))   #qbcHelloabq

注意: 不传参数时,strip() 默认去掉空白字符;传了参数就只去掉参数里的字符,不会默认再去掉空格。

s = "  **  "
print(s.strip())      # "**"(只去空格)
print(s.strip(" *"))  # ""(去掉空格和星号)

十六、strip 与 input 结合的最佳实践

推荐习惯: 对用户输入先 strip() 再使用,避免前后空格导致判断错误。

# 推荐写法
name = input("请输入姓名:").strip()
age = input("请输入年龄:").strip()
age = int(age)   # 若用户只输入空格,这里会报错,可后续学异常处理

# 多步写清楚也可以
name = input("请输入姓名:")
name = name.strip()

综合示例:输入 + 去空格 + 大小写

choice = input("请选择 A 或 B:").strip().upper()
if choice == "A":
    print("你选了 A")
elif choice == "B":
    print("你选了 B")
else:
    print("请输入 A 或 B")

十七、strip 相关小结

方法 作用 示例
s.strip() 去掉两端空白 " hi ".strip()"hi"
s.lstrip() 只去掉左边空白 " hi".lstrip()"hi"
s.rstrip() 只去掉右边空白 "hi ".rstrip()"hi"
s.strip("x") 去掉两端在 “x” 里的字符 "**hi**".strip("*")"hi"

第四部分:综合示例与小结

十八、综合示例:输入、strip、大小写一起用

# 程序:根据用户输入打招呼并判断是否继续
name = input("请输入你的名字:").strip()
name = name.capitalize()
print("你好,", name, "!")

choice = input("继续吗?(Y/N):").strip().upper()
if choice == "Y":
    print("欢迎继续使用")
elif choice == "N":
    print("再见")
else:
    print("请输入 Y 或 N")

十九、小结表

主题 要点
input() 暂停等待输入,返回字符串;可写提示:input("提示:")
类型 要做运算时用 int() / float() 转换
upper() 全变大写,常用于不区分大小写比较
lower() 全变小写,同上
title() 每个单词首字母大写
strip() 去掉两端空白,建议对 input() 结果先 strip 再使用
lstrip() / rstrip() 只去左边或右边空白

发表评论