Python学习笔记 第7章(1) input()函数和求模运算符%
Python学习笔记 第7章(1) input()函数和求模运算符%

Python学习笔记 第7章(1) input()函数和求模运算符%

第7章 用户输入和while循环

交互式的程序需要获取用户输入(input)并控制程序运行的时间,这需要input()函数。而while循环则可以是程序不断地运行,直到条件不再满足为止.

  • 后面章节的内容和代码长度都在增加,从本章起将分开记录在不同笔记中,以免笔记过长而影响阅读.
  • 另,为避免过程中频繁切换中英文标点符号造成各种书写错误,以后的笔记统一用半角英文标点符号.

7.1 input()函数的工作原理

变量名 = input("函数参数,即提示内容字符串")

input()函数让程序暂停运行,等待用户输入,获取输入后,Python将其赋值给变量.如下代码将一段用户输入的文本打印到屏幕.

message = input("请输入一些内容并回车,我将把它们呈现给你:")
print(message)

上面的代码中input()函数带有一个参数,即其括号中的字符串,它可以用作给用户一些提示(prompt),让用户知道需要输入哪方面的内容等.运行后,程序会停止在屏幕上,等待用户输入,输入后回车,print()函数则会将用户刚刚输入的内容再打印到屏幕上.

7.1.1 编写清晰的提示

使用input()函数时,应该给用户以清晰的提示,让用户知道该输入什么,从用户处减少输入错误.当需要的提示很长时,可以分行书写,如下:

tishi = "在正式使用前,你应该仔细阅读本程序的使用指南以及隐私声明."
tishi += "\n当你完成注册并正式开始使用,则视为你已经接受本程序的隐私声明."
tishi += "\n首先,请输入你希望使用的用户名: "

username = input(tishi)
print(username)

上例中的运算符+=用于创建多行字符串,它将给变量tishi在其末尾上再追加一个字符串,可以多次追加.字符串格式的控制方式,像普通字符串一样.

7.1.2 使用int()函数获取数值输入

input()函数默认输入的是字符串,但有时候需要的是数值而不是字符串,这里用int()函数进行处理.

下面代码虽然能获取用户年龄,但Python会报错,因为无论用户输入什么数字,赋值给变量的都是默认的字符串,是被引号' '包围起来的,所以无法进行数学计算.

age = input("你今年多大了: (请输入整数)")

if age >= 12:
    print("你已满12岁,符合本程序使用条件,让我们继续吧.")
else:
    print("你未满12岁,请由家长注册账号,并在其监督陪伴下使用.")

如下代码,用int()函数正确处理用书输入的值后,可以正常运行.

age = input("你今年多大了: (请输入纯数字)")

#int()函数会将其获取的参数值转换为数值
age =int(age)

if age >= 12:
    print("你已满12岁,符合本程序使用条件,让我们继续吧.")
else:
    print("你未满12岁,请由家长注册账号,并在其监督陪伴下使用.")

牢记input()函数获取的默认为字符串,要对输入值进行计算或比较前,务必转换为数值.

7.1.3 求模运算符 %

处理数值时会遇到求模运算,求模运算符%只返回两数相除的余数,如果整除,则返回0.看到这里,我有点疑惑,Python的%究竟是求模还是求余[1]?实测一下.

jieguo = -7 % 4
print(jieguo)

实际输出的结果为1,按照求模和求余的不同取商方法,可见Python的%的确是求模的,而不是求余,可能我的疑惑原本就是多余的…

最常见的求模运算就是判断奇偶数吧?如果一个数能被2整除就是偶数,否则为奇数.

number=input("请你输入一个任意整数,我来判断其是否为偶数: ")

number=int(number)

if number % 2 == 0 :
    print(f"{number} 为偶数.")
else:
    print(f"{number} 是一个奇数.")

本节习题

习题 7.1 获取输入并打印到屏幕

shuiguo = input("请输入你最喜欢的水果: ")
print(f"哦,原来你最还吃{shuiguo}.")

习题 7.2 判断输入数值并反馈信息

renshu = input("请输入预定餐桌的就餐人数: ")

renshu = int(renshu)

if renshu > 10 :
    print(f"抱歉,本餐厅没有超过10人的大桌.")
else:
    print(f"好的,请继续输入预约用餐的时期.")

习题 7.3 10的整倍数

让用户输入一个数,并返回其是否为10的整倍数.

number = input("本品每包10个,整包出售,请输入需要的数量: ")

number = int(number)

if number % 10 == 0 :
    print(f"好的,您需要购买{number/10}包,请继续下单.")
else:
    print(f"抱歉,不足整包部分无法出售,请修改购买数量.")

  1. 求模运算和求余运算的主要差别在于第一步的两数相除商的取向.求模时,商向负无穷方向舍入取整;而求余时,商向0方向舍入取整.测试例子中的-9/5,其求模时结果为-1.8≈-2;而在求余时,其结果为-1.8≈-1 ↩︎

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注