【Python】5. 用户输入和基本语句

257 阅读3分钟

1. 用户输入

使用函数 input() 可以让程序暂停运行,等待用户输入一些文本,Python在获取用户的输入后,将其存储在一个变量中,以便用户来使用。

当使用 input() 函数时,可以指出需要用户输入的数据是什么,即进行必要的信息提示。

示例:

name = input('请输入你的姓名:')
print('Hello ' + name)

示例输出:

请输入你的姓名:张三
Hello 张三

采用 input() 方法输入的数据,默认以字符串形式存储。如果用户需要输入数字类型,可以采用类型转换的函数(如 int() 实现字符串转换为整形)来实现。

示例:

age = input('请输入你的年龄:')
age = int(age)
if age >= 18:
    print('已成年')
else:
    print('未成年')

示例输出:

请输入你的年龄:20
已成年

2. if 语句

2.1 简单的if语句

2.1.1 if语句

一般情况下, if 语句主要进行条件的判断。下面这个示例是进行的各种条件判断。

示例

name = 'Zhangsan'
# 判断基本的相等于不等
if name != 'zhangsan':
    print(name + ' 不等于 zhangsan')

# 带大小写转换的判断
if name.lower() == 'zhangsan':
    print(name.lower() + ' 等于 zhangsan')

# 判断数值
age = 20
if age >= 20:
    print(str(age) + '>= 20')
if age < 30:
    print(str(age) + '< 30')

# 判断多个条件
age_1 = 20
age_2 = 23
if age_1 <= 25 and age_2 <= 25:
    print('两个年龄均小于 25 ')
if age_1 >= 18 or age_2 >= 18:
    print('两个年龄,至少有一个已成年')

示例输出:

Zhangsan 不等于 zhangsan
zhangsan 等于 zhangsan
20>= 20
20< 30
两个年龄均小于 25 
两个年龄,至少有一个已成年

另外,if语句还可以判断某个值是否在列表中。

示例:

name = ['张三', '李四', '王五', '赵六']
if '张三' in name:
    print('张三在 name 列表中')

if '田七' not in name:
    print('田七不在 name 列表中')

示例输出:

张三在 name 列表中
田七不在 name 列表中
2.1.2 if-else 语句

经常需要在条件测试通过了时执行一个操作,并在没有通过时执行另一个操作;在这种情况下,可使用Python提供的 if-else 语句。if-else 语句块类似于简单的 if 语句,但其中的else 语句让你能够指定条件测试未通过时要执行的操作。

示例:

age = 17
if age >= 18:
    print('你已成年')
else:
    print('你未成年')
2.1.3 if-elif-else 语句

经常需要检查超过两个的情形,为此可使用Python提供的 if-elif-else 结构。Python只执行 if-elif-else 结构中的一个代码块,它依次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。

month = 5
if month in [1, 3, 5, 7, 8, 10, 12]:
    print(str(month) + ' 月有31天')
elif month in [4, 6, 9, 11]:
    print(str(month) + ' 月有30天')
elif month == 2:
    print(str(month) + ' 月可能有28天,也可以有29天')
else:
    print('该月份错误')

elif 代码块是可以叠加使用的,即任意数量的 elif代码块均可。

末尾的else代码块可以省略。

2.2 if语句与列表

2.2.1 检查特殊元素

使用for循环可以对列表中的元素进行遍历,在遍历的时候,可以对特殊元素进行筛查。

示例:

scores = [100, 98, 59, 60, 78, 99, 57, 63]
flag = 0
for score in scores:
    if score <= 60:
        flag += 1

print('共有 ' + str(flag) + ' 门课程不及格。')

示例输出:

共有 3 门课程不及格。

在Python中,没有自增或自减(++ 或 --)操作,如果需要对变量 i 进行加一或者减一的操作,可以使用i += 1 (即 i = i + 1 )或者 i -= 1(即 i = i - 1 )实现。

2.2.2 判断列表是否为空

如果列表初始值就是空,那么再执行循环也是无意义的。所以有时需要对列表是否为空进行判断。

示例:

scores = []
flag = 0
if scores:
    for score in scores:
        if score <= 60:
            flag += 1
    print('共有 ' + str(flag) + ' 门课程不及格。')
else:
    print('暂时没有成绩公布')

示例输出:

暂时没有成绩公布

注意缩进

3. while 语句

for 循环用于针对集合中的每个元素都一个代码块,而 while 循环不断地运行,直到指定的条件不满足为止。

最简单的用法就是设置循环结束的条件。当然循环结束条件也是while循环中不可忽略的,如果条件设置不当,容易造成死循环。

示例:

# 输出前5个姓名
names = ['赵一', '钱二', '孙三', '李四', '周五', '吴六', '郑七', '王九']
num = 0
while num < 5:
    print(names[num])
    num += 1

示例输出:

赵一
钱二
孙三
李四
周五

while 循环中可以使用 break 关键字来终止循环。

示例:

# 向列表中添加姓名,当输入重复的姓名时,结束
names = []
while True:
    name = input('请输入姓名:')

    if name in names:
        print(names)
        break
    else:
        names.append(name)

示例输出:

请输入姓名:张三
请输入姓名:李四
请输入姓名:王五
请输入姓名:赵六
请输入姓名:张三
['张三', '李四', '王五', '赵六']

while 循环中也可以用 continue 关键字来快速执行下一次循环,即忽略本次循环未执行的后续语句。即 决定是否继续执行循环

示例:

# 打印20以内的奇数
num = 0
while num < 20:
    num += 1
    if num % 2 == 0:
        continue
    else:
        print(num)

当然, while 循环也可以和列表、字典等数据类型结合使用。不过具体是使用 while 循环方便,还是使用 for 循环方便,可结合具体实际进行选择。

示例:

# 首先,创建一个待验证用户列表和一个用于存储已验证用户的空列表
unconfirmed_users = ['alice', 'brian', 'candace']
confirmed_users = []
# 验证每个用户,直到没有未验证用户为止
# 将每个经过验证的列表都移到已验证用户列表中
while unconfirmed_users:
    current_user = unconfirmed_users.pop()
    print("正在验证: " + current_user.title())
    confirmed_users.append(current_user)

# 显示所有已验证的用户
print("\n以下用户已验证:")
for confirmed_user in confirmed_users:
    print(confirmed_user.title())

示例输出:

正在验证: Candace
正在验证: Brian
正在验证: Alice

以下用户已验证:
Candace
Brian
Alice

参考文献:

[1] Python编程:从入门到实践

如果有帮助,感谢动动小手点个赞 (๑•̀ㅂ•́)و✧❤