今天学了 python
几个方法,用这几个方法组合起来可以进行格式化输出,输出我想要的任意格式,首先我要先来介绍这几个方法。
第一个方法是一个函数叫做 input()
input()
input()
函数接受一个标准输入数据,返回为值 string
类型,我来做一个实例,我新建一个 app.py
然后输入以下内容:
name = input()
age = input()
print(name)
print(age)
然后通过命令去启动这个文件:
python3 app.py
启动成功后可以看到这样一个光标出来,就代表你可以输入内容了
我先输入: zhangsan
,然后我再次按回车键如下,又出来一个光标:
然后我再次输入 23
在次按回车键,如下:
当我看到结果之后我发现我输入的内容全部被打印出来了,因为当执行完两次 input()
后,我正好打依次顺序自动将它打印出来了。
其实 input()
还可以在用户输入的时候在前面加上提示,就和在开发前端的时候我才用 vue-cli
生成脚手架一样我输入什么然后他依次给我生成对应的配置似的,其实很简单,往 input()
这个函数里面添加字符串参数就好了,如:
name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
print('姓名:'+name)
print('年龄:'+age)
然后重新启动 python3
之后,我依此输入内容,如:
等到我输入完第二个年龄后,我开始按下回撤键,就会答应出我输入的内容:
注意:输入的在 input()
函数内输入的内容全部都是字符串格式的。
好,第一个 input()
函数讲完了,现在开始第二个 占位符
占位符
在 python
中占位符是以百分号开头的 %
,占位符后面可以追加你要的 类型,如 String
类型,或者 Number
类型等等…
现在我的需求是做一个用户输出的例子,并且是用一个边框类型的方块在 dos
界面将用户输入的值打印出来,在我不用占位符的情况下,我的思路是这样的,如:
name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
sex = input('性别:')
depict = input('描述:')
info = '''
-----------------------------------
| 姓名 :'''+name+'''
|
| 年龄 :'''+age+'''
|
| 性别 :'''+sex+'''
|
| 描述 :'''+depict+'''
-----------------------------------
'''
print(info)
好,我用 python
来运行以下这个文件:
可以看到效果是没什么问题,出来了,但是代码的编写太过于复杂化了,写一个就要字符串拼接一个,代码写起来太累赘,如果用 占位符
的话,我可以通过参数 传参
,并且还可以定一个格式如:
name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
sex = input('性别:')
depict = input('描述:')
info = '''
-----------------------------------
| 姓名 :%s
|
| 年龄 :%s
|
| 性别 :%s
|
| 描述 :%s
-----------------------------------
'''%(name,age,sex,depict)
print(info)
在运行 python
之前介绍一下 占位符 是一百分号开头的,后面的 参数 可以定义数据的格式 s
代表的就是 字符串( string
)类型,也可以定义其他类型,这里先以 string
为例子。
我现在运行 python
,运行结束后结果如下:
可以很明确的发现同样的功能,两种实现方法都能 OK ,但是第二种更加灵活,要穿进去的参数我直接在字符串结尾之后用占位符的方法以 传参
的方式传递进去,这样就更加方便了。
上面我说了 input()
方法默认输入都是 字符串
,那么如果说我想把输入的年龄改成 数字类型
怎么办,接下来就介绍以下如何将数据类型转成 数字类型
的方法 int()
int()
在 python
中如果要把那个数据转成 数字类型 就直接放进 int()
函数内就好了,如我现在把年龄改成 数字类型
,当然对应的占位符就不能是 %s
了,因为 %s
代表的是字符串,要把 s
改成 d
也就是 %d
不然会报错的:
name = input('请输入你的姓名:')
age = int(input('请输入你的年龄:'))
sex = input('性别:')
depict = input('描述:')
print(type(age))
info = '''
-----------------------------------
| 姓名 :%s
|
| 年龄 :%d
|
| 性别 :%s
|
| 描述 :%s
-----------------------------------
'''%(name,age,sex,depict)
print(info)
看看打印结果:
可以看到我想要的功能实现了,数据也对应上了,但是 int()
函数里面又写了一个函数我个人习惯导致看的很变扭,反正程序一通百通,我换一种形式,在底部传参的时候直接转也不碍事,如:
name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
sex = input('性别:')
depict = input('描述:')
print(type(age))
info = '''
-----------------------------------
| 姓名 :%s
|
| 年龄 :%d
|
| 性别 :%s
|
| 描述 :%s
-----------------------------------
'''%(name,int(age),sex,depict)
print(info)
运行结果如:
打印出来的还是 string
类型,那是因为我并没有改变 age
这个变量本身,而是在传参的时候改变了 age
这个参数的本身。所以他才是 string
关于 int()
的分享已经结束了,但是还有一个占位符用的比较多,我就直接来吧。%f
也就是浮点数,还是上面这个例子,我来看看给他设置成浮点数会是什么样子的。
name = input('请输入你的姓名:')
age = input('请输入你的年龄:')
sex = input('性别:')
depict = input('描述:')
print(type(age))
info = '''
-----------------------------------
| 姓名 :%s
|
| 年龄 :%f
|
| 性别 :%s
|
| 描述 :%s
-----------------------------------
'''%(name,int(age),sex,depict)
print(info)
运行结果如下:
可以看到如果是浮点数的话,就算是整数,他也会给加上几个 6 个0
,因为浮点数也是数字类型所以 int()
方法还是起效的。