Python 中输入(input)、字符串的大小写、strip() 完全指南
第一部分:输入 —— input()
一、input() 是什么?
input() 是 Python 的内置函数,用来在程序运行过程中从用户那里获取输入。
- 程序执行到
input()时会暂停,等待用户在终端(或运行窗口)里输入内容 - 用户输入完毕按 回车 后,
input()会把用户输入的内容当作一个字符串返回 - 你可以用变量接住这个字符串,再在程序里使用
最简单的例子:
name = input("请输入你的名字:")
print("你好,", name, "!")
运行后:
- 屏幕先显示:
请输入你的名字: - 用户输入比如
小明然后回车 - 程序输出:
你好, 小明 !
二、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, "岁")
注意: 如果用户输入的不是整数形式(如 abc、18.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() | 只去左边或右边空白 |