一、 input输入函数
input函数:获取用户输入,保存成一个字符串。重要的话,说两遍,input函数的返回值是一个字符串类型。哪怕你输入的是个数字1,返回给你的只会是字符串“1”,而不是 整数1。下面是一些简单的展示例子:
>>> inp = input("please input your name: ") please input your name: jack >>> inp 'jack' >>> type(inp) <class 'str'> >>> age = input("please input your age: ") please input your age: 18 >>> age '18' >>> type(age) <class 'str'> >>> a = input("请输入一个字符:") 请输入一个字符: >>> a '' >>> a = input("请输入一个字符:") 请输入一个字符: 前后带有空白 >>> a ' 前后带有空白 '
第一个例子中,inp = input("please input your name: "),input函数里可以提供一个字符串,用来给用户进行输入提示。input函数的返回值赋值给inp这个变量后,inp里就保存了用户输入的值。
type是Python内置的函数之一,非常有用,用于查看对象的数据类型。例子中的inp是一个str字符串类型,这验证了我们前面说的话。
第二个例子,我们输入了年龄18,但age里保存的是一个“18”的字符串。
第三个例子,什么都没输入,返回的是一个空字符串。
第四个例子,有效输入的前后空白被保留在了返回的字符串中。
从上面例子的展示中,我们不难发现,input函数将我们的输入原样不动的返回给了我们,并包装成一个字符串。这肯定是不行的,会带来很多问题,所以通常我们都需要对用户输入进行处理和判定。
比如对空输入进行处理:
inp = input("请输入你的姓名: ") if inp == "": inp = input("姓名不能为空,请重新输入: ")
比如将字符串转换成数字类型:
age = input("请输入你的年龄: ") age = int(age) # 将字符串转化为整数 if age > 18: print("你已经成年!") else: print("还没断奶?")
去除开头的空白lstrip,去除结尾的空白rstrip以及去除两端的空白strip
inp = input("请输入你的姓名: ") inp = inp.strip() # strip的用法在字符串数据类型有讲述 print(inp)
判断输入的字符类型
前面我们在将字符串转化为整数用的是int()函数,这种方式有危险的,看下面的例子:
>>> s = "123" >>> a = int(s) >>> a 123 >>> s = "something" >>> a = int(s) Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> a = int(s) ValueError: invalid literal for int() with base 10: 'something'
对于形如“123”, “283242”的字符串,转化没问题,但是对于包含字符、特殊字符的字符串就没办法转化了,会弹出异常错误。所以在使用int函数之前,要先对输入进行判断。我们修改一下上面的例子:
age = input("请输入你的年龄: ")if age.isdigit(): # 使用isdigit函数判断输入是否全是数字格式 age = int(age) # 将字符串转化为整数 print("你的年龄是: ", age)else: print("输入不合法!")
input函数有时可以巧妙地用于阻塞或暂停程序
print("程序前面部分执行完毕......") input("请按回车继续......") # 在这里程序会暂停,等待你的回车动作 print("继续执行程序的后面部分......")
二、 print输出函数
print函数我们其实已经不陌生了,前前后后也用了不少次,多少有点经验,明白点它的用法了。
print函数用于将内容格式化显示在标准输出上,主要指的是屏幕显示器。
print可以接受多个字符串,字符串类型的变量或者可print的对象。每个字符串用逗号“,”隔开,连成一串输出。print会依次打印每个字符串,同时,每遇到一个逗号“,”就输出一个空格。
>>> a = "i am" >>> b = "student" >>> print(a,"a" , b) i am a student # 自动以空格分隔 >>> print(a+"a"+b) i amastudent # 无分隔
对于形如print(a+"a"+b)的语句,其实是先计算a+"a"+b的值,然后再通过print打印它。print()会自动执行内部的语句,输出想要的结果。再看一个例子:
>>> a = 10 >>> b = 2 >>> print(sum((a, a*b))) # 先求a*b,再求和,再打印 30
我们看一下print函数的原型:print(self, *args, sep=' ', end='\n', file=None)
sep参数: 分隔的符号,默认是一个空格;
end参数: 打印后的结束方式,默认为换行符\n。如果,设置end='',则可以不换行,让print在一行内连续打印。活用print的参数,可以实现灵活的打印控制。
>>> a = "i am" >>> b = "student" >>> print(a,"a" , b, sep="*") i am*a*student
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试