5、基本输入/输出函数
(1)input()
input()函数从控制台获得用户的一行输入,无论用户输入什么内容,input()函数都以字符串类型返回结果。
<变量>=input(<提示性文字>)
a=input("请输入:")
请输入:123.456
a
'123.456'
a=input("请输入:")
请输入:a+b+c+d
a
'a+b+c+d'
a=input("请输入:")
请输入:[1,2,3,"a","b","c"]
a
'[1,2,3,"a","b","c"]'
input()的提示性文字是可选的,程序可以不设置提示性文字而直接使用input()获取输入。
a=input()
{1,2,3,4}
a
'{1,2,3,4}'
(2)eval()
eval(s)函数将去掉字符串s最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容。
<变量>=eval(<字符串>)
a=eval("1.2")
a
1.2
a=eval("1.2+3.4")
a
4.6
注意:
a=eval("pybook")
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
a=eval("pybook")
File "<string>", line 1, in <module>
NameError: name 'pybook' is not defined
pybook=123
a=eval("pybook")
a
123
a=eval("'pybook'")
print(a)
pybook
当eval()处理字符串“pybook”时,字符串去掉两个引号后,Python语句将其解释成一个变量,由于之前没有定义,所以会报错。
*eval()经常和input()函数一起使用,用来获取用户输入的数字。
<变量>=eval(input(<提示性文字>))
value=eval(input("请输入:"))
请输入:1234.456
print(value*2)
2468.912
等价于
s=input("请输入:")
请输入:123.456
value=eval(s)
print(value*2)
246.912
(3)print()
print()用于输出运算结果,根据输出内容不同分为三种。
1、第一种
仅用于输出字符串或单个变量。
print(<待输出字符串或变量>)
对于字符串,print()函数输出后将去掉两侧双引号或单引号,输出结果是可打印字符。对于其他类型,直接输出表示。
print("世界和平")
世界和平
print(13.2)
13.2
print([1,2,3,4])
[1, 2, 3, 4]
但是,当print()输出字符串表示时,字符串统一采用单引号形式表达。
print(["a","b","c"])
['a', 'b', 'c']
2、第二种
仅用于输出一个或多个变量
print(<变量1>,<变量2>,...,<变量n>)
输出后的各变量之间用一个空格分隔。
value=123
print(value,value,value)
123 123 123
print("北京","欢迎","您")
北京 欢迎 您
3、第三种
用于混合输出字符串与变量值
print(<输出字符串模板>.format(<变量1>,<变量2>,...,<变量n>))
其中,输出字符串模板中采用{}表示一个槽位置,每个槽位置对应 format()中的一个变量。
a,b=123,456
print("数字{}和数字{}的乘积是{}".format(a,b,a*b))
数字123和数字456的乘积是56088
注意:
print()函数输出文本时默认会在最后增加一个换行,如果不希望增加换行,或者希望输出文本后增加其他内容,可对print()函数的end参数进行赋值。
print(<待输出的内容>,end="<增加的输出结尾>")
a=12
print(a,end=".")
12.
print(a,end="%")
12%
如果将上述代码写在一个文件中,可以看到每次执行print()函数,没有产生换行。
a=12
print(a,end=".")
print(a,end="%")
得到
12.12%
6、倒背如流
1、正向递增
s=input("请输入一段文本:")
i=len(s)-1
while i>=0:
print(s[i],end="")
i=i-1
得到
请输入一段文本:岁月静好
好静月岁
2、反向递减
s=input("请输入一段文本:")
i=-1
while i>=-1*len(s):
print(s[i],end="")
i=i-1
得到
请输入一段文本:白日依山尽
尽山依日白
3、切片
s=input("请输入一段文本:")
print(s[::-1])
得到
请输入一段文本:留连戏蝶时时舞
舞时时蝶戏连留
二、作业
1、获得用户输入的一个整数N,计算并输出N的32次方。
import math
N=eval(input("请输入一个整数:"))
print(math.pow(N,32))
2、获取用户输入的一段文字,将这段文字进行垂直输出。
s=input("请输入一段文字:")
i=0
while i<=len(s)-1:
print(s[i])
i=i+1
3、获得用户输入的一个合法算式,例如:1.2+3.4,输出运算结果。
s=eval(input("请输入一个合法算式:"))
print(s)
4、获取用户输出的一个小数,提取并输出其整数部分。
n=eval(input("请输入一个小数N:"))
print("N的整数部分为{:.0f}".format(n))
5、下面这段代码能够获得用户输入的一个整数N,计算并输出1到N相加的和,然而,这段代码存在多出语法错误,请指出错误所在并纠正。
n=input("请输入整数N:")
sum=0
for i in range(n)
sum+=i+1
print("1到N求和结果".format(sum))
纠正后如下:
n=eval(input("请输入整数N:"))
sum=0
for i in range(n):
sum+=i+1
print("1到N求和结果{}".format(sum))
终于把昨天遗留的作业完成喽!加油