Python 基础语法详解(二):输入输出、类型转换和运算符,一篇搞懂程序如何和用户交互

头像

🔥 星恒随风: 个人主页
❄️ 个人专栏: 《指针合集》 《C语言基础》 《数据结构》 《机器学习导论》 《前端基础》 《python基础》
✨ 数据即知识,压缩即智能


一、控制台输出:print()

Python 使用 print() 向控制台输出内容。

print("hello")

可以输出字符串:

print("Python")

也可以输出数字:

num = 10
print(num)

也可以输出布尔值:

flag = True
print(flag)

输出是程序和用户交流的最基础方式。


二、f-string:更舒服的格式化输出

实际写程序时,我们经常希望把变量嵌入到字符串中。

比如:

name = "张三"
age = 18

print(f"姓名:{name},年龄:{age}")

输出:

姓名:张三,年龄:18

这种写法叫 f-string。

格式是:

f"文本内容 {变量或表达式}"

花括号 {} 中可以写变量,也可以写表达式:

a = 10
b = 20

print(f"{a} + {b} = {a + b}")

输出:

10 + 20 = 30

f-string 是 Python 中非常推荐的字符串格式化方式。


三、控制台输入:input()

Python 使用 input() 从控制台读取用户输入。

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

input() 中的字符串是提示信息。

运行时,用户会看到:

请输入你的名字:

用户输入内容后,程序会把输入结果保存到变量中。


四、input() 读到的永远是字符串

这是容易踩的坑之一。

看下面的代码:

a = input("请输入第一个整数:")
b = input("请输入第二个整数:")

print(a + b)

如果输入:

10
20

输出不是:

30

而是:

1020

原因是:

input() 返回的是字符串。

所以 a + b 做的是字符串拼接,不是数字加法。


五、类型转换:把字符串变成数字

如果要做整数运算,需要使用 int()

a = input("请输入第一个整数:")
b = input("请输入第二个整数:")

a = int(a)
b = int(b)

print(a + b)

也可以写成:

a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))

print(a + b)

如果输入的是小数,就使用 float()

a = float(input("请输入第一个小数:"))
b = float(input("请输入第二个小数:"))

print(a + b)

常见类型转换函数如下:

函数 作用 示例
int() 转成整数 int("123")
float() 转成浮点数 float("3.14")
str() 转成字符串 str(18)
bool() 转成布尔值 bool(1)

示例:

a = "123"
b = int(a)

print(b + 1)

输出:

124

但如果字符串内容无法转成整数,就会报错:

a = "hello"
b = int(a)

所以类型转换前,要确认内容格式合法。

在这里插入图片描述


六、算术运算符

在这里插入图片描述


1. 取余 %

% 不是百分号,而是求余数。

print(7 % 2)

输出:

1

因为:

7 除以 2,商是 3,余数是 1。

取余常用于判断奇偶:

num = 10

print(num % 2 == 0)

如果结果是 True,说明是偶数。


2. 乘方 **

** 表示乘方:

print(2 ** 3)

输出:

8

也可以计算平方根:

print(4 ** 0.5)

输出:

2.0

3. 除数不能为 0

下面代码会报错:

print(10 / 0)

因为除数不能为 0。

程序运行过程中出现这类意外情况,通常称为异常。


七、关系运算符

关系运算符用于比较两个值之间的关系。

常见关系运算符如下:

运算符 含义
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于

示例:

a = 10
b = 20

print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)

输出:

True
True
False
False
False
True

关系表达式的结果是布尔值:

True
False

八、字符串也可以比较

Python 中字符串也可以比较。

a = "hello"
b = "world"

print(a < b)
print(a == b)

字符串比较遵循字典序。

可以粗略理解成:

像查英文词典一样比较,越靠前越小,越靠后越大。

例如:

print("apple" < "banana")

输出:

True

因为 apple 在字典中更靠前。


九、逻辑运算符

逻辑运算符用于组合多个条件。

Python 中常见逻辑运算符有:

运算符 含义 规则
and 并且 一假则假
or 或者 一真则真
not 取反 True 变 False,False 变 True

1. and

age = 20
score = 90

print(age >= 18 and score >= 60)

只有两个条件都成立,结果才是 True


2. or

has_ticket = False
is_vip = True

print(has_ticket or is_vip)

只要有一个条件成立,结果就是 True


3. not

is_login = False

print(not is_login)

输出:

True

在这里插入图片描述


十、Python 支持链式比较

Python 中可以直接写:

a = 10
b = 20
c = 30

print(a < b < c)

这等价于:

print(a < b and b < c)

这种写法在判断范围时非常好用。

比如判断分数是否在 0 到 100 之间:

score = 85

print(0 <= score <= 100)

十一、短路求值

Python 的逻辑运算符支持短路求值。

对于 and

如果左边已经是 False,整体一定是 False,右边不会继续执行。

print(10 > 20 and 10 / 0 == 1)

这段代码不会报除 0 错误。

因为 10 > 20 已经是 False,后面的 10 / 0 == 1 不会执行。

对于 or

如果左边已经是 True,整体一定是 True,右边不会继续执行。

print(10 < 20 or 10 / 0 == 1)

这段代码也不会报错。

因为 10 < 20 已经是 True


十二、赋值运算符

最常见的赋值运算符是:

=

示例:

a = 10

注意区分:

a = 10

和:

a == 10

前者是赋值。

后者是判断是否相等。


十三、链式赋值和多元赋值

Python 支持链式赋值:

a = b = 10

print(a)
print(b)

输出:

10
10

也支持多元赋值:

a, b = 10, 20

print(a)
print(b)

输出:

10
20

十四、交换两个变量

在很多语言中,交换两个变量需要借助临时变量:

a = 10
b = 20

tmp = a
a = b
b = tmp

print(a, b)

Python 可以更简洁:

a = 10
b = 20

a, b = b, a

print(a, b)

输出:

20 10

这就是 Python 多元赋值的一个典型用法。


十五、复合赋值运算符

Python 支持复合赋值。

比如:

a = 10
a += 1

print(a)

输出:

11

a += 1 等价于:

a = a + 1

常见复合赋值运算符:

运算符 等价写法
+= a = a + b
-= a = a - b
*= a = a * b
/= a = a / b
%= a = a % b
//= a = a // b
**= a = a ** b

十六、Python 没有 ++ 和 –

在 C / Java 中,经常写:

i++;
i--;

但 Python 不支持 ++--

如果要自增,写:

i += 1

如果要自减,写:

i -= 1

这也是 Python 语法更清晰的一种体现。


十七、综合案例一:输入四个分数求平均值

把前面的输入、类型转换、变量、表达式、f-string 结合起来,可以写一个简单小程序。

需求:

输入四个分数,计算平均值。

代码:

a = float(input("请输入第一个分数:"))
b = float(input("请输入第二个分数:"))
c = float(input("请输入第三个分数:"))
d = float(input("请输入第四个分数:"))

avg = (a + b + c + d) / 4

print(f"平均分是:{avg}")

如果想保留两位小数:

print(f"平均分是:{avg:.2f}")

这里的 :.2f 表示小数保留两位。


十八、综合案例二:判断一个数是不是偶数

需求:

用户输入一个整数,判断它是否是偶数。

代码:

num = int(input("请输入一个整数:"))

if num % 2 == 0:
    print(f"{num} 是偶数")
else:
    print(f"{num} 是奇数")

这里用到了:

  • input() 获取输入
  • int() 类型转换
  • % 取余
  • == 判断相等
  • if else 条件判断

基础语法一组合,就能写出真正的小程序。


十九、常见坑点总结

在这里插入图片描述


总结

这一篇核心内容包括:

  • print() 用于输出;
  • f-string 可以更方便地格式化字符串;
  • input() 用于输入,但返回值永远是字符串;
  • 做数值计算前,通常需要使用 int()float() 转换类型;
  • 算术运算符负责数值计算;
  • 关系运算符产生 True / False
  • 逻辑运算符组合多个条件;
  • 赋值运算符用于修改变量的值;
  • Python 支持链式赋值、多元赋值和变量交换;
  • Python 不支持 ++--,自增自减使用 += 1-= 1

更多推荐