Bootstrap

备考计算机二级Python之解决Day2的遗留问题

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))

终于把昨天遗留的作业完成喽!加油

;