Python的输入输出 您所在的位置:网站首页 python输出两个数中较大的数 Python的输入输出

Python的输入输出

2023-06-25 14:57| 来源: 网络整理| 查看: 265

input()函数:获取用户输入的字符串

input() 是 Python 的内置函数,用于从控制台读取用户输入的内容。input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容可以包含任何字符。

input() 函数的用法为:

str = input(tipmsg)

说明:

str 表示一个字符串类型的变量,input 会将读取到的字符串放入 str 中。tipmsg 表示提示信息,它会显示在控制台上,告诉用户应该输入什么样的内容;如果不写 tipmsg,就不会有任何提示信息。

【实例】input() 函数的简单使用:

a = input("Enter a number: ") b = input("Enter another number: ") print("aType: ", type(a)) print("bType: ", type(b)) result = a + b print("resultValue: ", result) print("resultType: ", type(result))

运行结果示例:

Enter a number: 100↙ Enter another number: 45↙ aType:  bType:  resultValue:  10045 resultType: 

↙表示按下回车键,按下回车键后 input() 读取就结束了。 本例中我们输入了两个整数,希望计算出它们的和,但是事与愿违,Python 只是它们当成了字符串,+起到了拼接字符串的作用,而不是求和的作用。 我们可以使用 Python 内置函数将字符串转换成想要的类型,比如:

int(string) 将字符串转换成 int 类型;float(string) 将字符串转换成 float 类型;bool(string) 将字符串转换成 bool 类型。

修改上面的代码,将用户输入的内容转换成数字:

a = input("Enter a number: ") b = input("Enter another number: ") a = float(a) b = int(b) print("aType: ", type(a)) print("bType: ", type(b)) result = a + b print("resultValue: ", result) print("resultType: ", type(result))

 运行结果:

Enter a number: 12.5↙ Enter another number: 64↙ aType:  bType:  resultValue:  76.5 resultType: 

关于 Python 2.x

上面讲解的是 Python 3.x 中 input() 的用法,但是在较老的 Python 2.x 中情况就不一样了。Python 2.x 共提供了两个输入函数,分别是 input() 和 raw_input():

Python 2.x raw_input() 和 Python 3.x input() 效果是一样的,都只能以字符串的形式读取用户输入的内容。Python 2.x input() 看起来有点奇怪,它要求用户输入的内容必须符合 Python 的语法,稍有疏忽就会出错,通常来说只能是整数、小数、复数、字符串等。

比较强迫的是,Python 2.x input() 要求用户在输入字符串时必须使用引号包围,这有违 Python 简单易用的原则,所以 Python 3.x 取消了这种输入方式。 修改本节第一段代码,去掉 print 后面的括号:

a = input("Enter a number: ") b = input("Enter another number: ") print "aType: ", type(a) print "bType: ", type(b) result = a + b print "resultValue: ", result print "resultType: ", type(result)

 在 Python 2.x 下运行该代码:

Enter a number: 45↙ Enter another number: 100↙ aType:  bType:  resultValue:  145 resultType: 

 print()函数高级用法

前面使用 print() 函数时,都只输出了一个变量,但实际上 print() 函数完全可以同时输出多个变量,而且它具有更多丰富的功能。 print() 函数的详细语法格式如下:

print (value,...,sep='',end='\n',file=sys.stdout,flush=False)

从上面的语法格式可以看出,value 参数可以接受任意多个变量或值,因此 print() 函数完全可以输出多个值。例如如下代码:

user_name = 'Charlie' user_age = 8 #同时输出多个变量和字符串 print("读者名:",user_name,"年龄:",user_age)

运行上面代码,可以看到如下输出结果:

读者名: Charlie 年龄: 8

从输出结果来看,使用 print() 函数输出多个变量时,print() 函数默认以空格隔开多个变量,如果读者希望改变默认的分隔符,可通过 sep 参数进行设置。例如输出语句:

#同时输出多个变量和字符串,指定分隔符 print("读者名:" ,user_name,"年龄:",user_age,sep='|')

 运行上面代码,可以看到如下输出结果:

读者名:|Charlie|年龄:|8

在默认情况下,print() 函数输出之后总会换行,这是因为 print() 函数的 end 参数的默认值是“\n”,这个“\n”就代表了换行。如果希望 print() 函数输出之后不会换行,则重设 end 参数即可,例如如下代码: 

#设置end 参数,指定输出之后不再换行 print(40,'\t',end="") print(5O,'\t',end="") print(60,'\t',end="")

 上面三条 print() 语句会执行三次输出,但由于它们都指定了 end="",因此每条 print() 语句的输出都不会换行,依然位于同一行。运行上面代码,可以看到如下输出结果:

40    50    60

file 参数指定 print() 函数的输出目标,file 参数的默认值为 sys.stdout,该默认值代表了系统标准输出,也就是屏幕,因此 print() 函数默认输出到屏幕。实际上,完全可以通过改变该参数让 print() 函数输出到特定文件中,例如如下代码:

f = open("demo.txt","w")#打开文件以便写入 print('沧海月明珠有泪',file=f) print('蓝田日暖玉生烟',file=f) f.close()

 上面程序中,open() 函数用于打开 demo.txt 文件,接连 2 个 print 函数会将这 2 段字符串依次写入此文件,最后调用 close() 函数关闭文件,教程后续章节还会详细介绍关于文件操作的内容。 print() 函数的 flush 参数用于控制输出缓存,该参数一般保持为 False 即可,这样可以获得较好的性能。

格式化输出

print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。

表 1 Python 转换说明符 转换说明符解释%d、%i转换为带符号的十进制整数%o转换为带符号的八进制整数%x、%X转换为带符号的十六进制整数%e转化为科学计数法表示的浮点数(e 小写)%E转化为科学计数法表示的浮点数(E 大写)%f、%F转化为十进制浮点数%g智能选择使用 %f 或 %e 格式%G智能选择使用 %F 或 %E 格式%c格式化字符及其 ASCII 码%r使用 repr() 函数将表达式转换为字符串%s使用 str() 函数将表达式转换为字符串

转换说明符(Conversion Specifier)只是一个占位符,它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替。 【实例】输出一个整数:

age = 8 print("C语言中文网已经%d岁了!" % age)

运行结果: C语言中文网已经8岁了! 在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。本例的格式化字符串中包含一个%d说明符,它最终会被后面的 age 变量的值所替代。 中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。 当然,格式化字符串中也可以包含多个转换说明符,这个时候也得提供多个表达式,用以替换对应的转换说明符;多个表达式必须使用小括号( )包围起来。请看下面的例子:

name = "C语言中文网" age = 8 url = "http://c.biancheng.net/" print("%s已经%d岁了,它的网址是%s。" % (name, age, url))

运行结果:

C语言中文网已经8岁了,它的网址是http://c.biancheng.net/。

总之,有几个占位符,后面就得跟着几个表达式。

指定最小输出宽度

当使用表1中的转换说明符时,可以使用下面的格式指定最小输出宽度(至少占用多少个字符的位置):

%10d 表示输出的整数宽度至少为 10;%20s 表示输出的字符串宽度至少为 20。

请看下面的演示:

n = 1234567 print("n(10):%10d." % n) print("n(5):%5d." % n) url = "http://c.biancheng.net/python/" print("url(35):%35s." % url) print("url(20):%20s." % url)

 运行结果:

n(10): 1234567. n(5):1234567. url(35): http://c.biancheng.net/python/. url(20):http://c.biancheng.net/python/.

从运行结果可以发现,对于整数和字符串,当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出。 你看,这里指定的只是最小宽度,当数据的实际宽度足够时,指定的宽度就没有实际意义了。

指定对齐方式

默认情况下,print() 输出的数据总是右对齐的。也就是说,当数据不够宽时,数据总是靠右边输出,而在左边补充空格以达到指定的宽度。Python 允许在最小宽度之前增加一个标志来改变对齐方式,Python 支持的标志如下:  

Python 支持的标志 标志说明-指定左对齐+表示输出的数字总要带着符号;正数带+,负数带-。0表示宽度不足时补充 0,而不是补充空格。

几点说明:

对于整数,指定左对齐时,在右边补 0 是没有效果的,因为这样会改变整数的值。对于小数,以上三个标志可以同时存在。对于字符串,只能使用-标志,因为符号对于字符串没有意义,而补 0 会改变字符串的值。

请看下面的代码:

n = 123456 # %09d 表示最小宽度为9,左边补0 print("n(09):%09d" % n) # %+9d 表示最小宽度为9,带上符号 print("n(+9):%+9d" % n) f = 140.5 # %-+010f 表示最小宽度为10,左对齐,带上符号 print("f(-+0):%-+010f" % f) s = "Hello" # %-10s 表示最小宽度为10,左对齐 print("s(-10):%-10s." % s)

 运行结果:

n(09):000123456 n(+9): +123456 f(-+0):+140.500000 s(-10):Hello 指定小数精度

对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。 精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。具体格式如下:

%m.nf %.nf

 m 表示最小宽度,n 表示输出精度,.是必须存在的。 请看下面的代码:

f = 3.141592653 # 最小宽度为8,小数点后保留3位 print("%8.3f" % f) # 最小宽度为8,小数点后保留3位,左边补0 print("%08.3f" % f) # 最小宽度为8,小数点后保留3位,左边补0,带符号 print("%+08.3f" % f)

运行结果:

3.142 0003.142 +003.142


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有