玩转大数据大数据 爬虫Python AI Sql大数据

白话python连载(3)巧妙使用输入输出

2018-05-06  本文已影响42人  哈希大数据

欢迎关注公众号【哈希大数据】

〖 python小应用 〗

问题描述:在有序的数组中新插入一个不存在的数,并且保持该数组仍然有序

import random
def ori_data(start, stop, length): 
#准确指定起始范围由小到大 start,stop = (int(start),int(stop)) if start <= stop else (int(stop),int(start))
 length = int(abs(length)) if length else 0
 if int(abs(start-stop)) < length: print('所选范围不符合要求,请重新指定')
 return None 
else: #利用随机函数生成随机数组,并且保证数值唯一
 random_list = []
 for i in range(length): 
one_number = random.randint(start, stop)
 while one_number in random_list: one_number = random.randint(start,stop)
 print('有重复,已经重新生成') random_list.append(one_number) random_list = sorted(random_list) return random_list
if __name__ == '__main__': ori_data = ori_data(38,22,10) print('新生成的数组为:{}'.format(ori_data))

运行结果

D:/vernacular/coding_ziyi/InsertAndSort.py

有重复,已经重新生成

有重复,已经重新生成

有重复,已经重新生成

新生成的数组为:[23, 25, 26, 31, 32, 34, 35, 36, 37, 38]

问题描述:按格式输出九九乘法表

#!/usr/bin/python
# -*- coding: utf-8 -*-
for i in range(1,10): for j in range(1,i+1):
 multip = i * j print('{}*{}={}'.format(j,i,multip),end=' ')
 print('')

运行结果

D:/vernacular/coding_ziyi/multiplication_table.py

11=1*

12=2 22=4

13=3 23=6 33=9*

14=4 24=8 34=12 44=16

15=5 25=10 35=15 45=20 55=25*

16=6 26=12 36=18 46=24 56=30 66=36

17=7 27=14 37=21 47=28 57=35 67=42 77=49*

18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64

19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 99=81*

问题描述:使用递归调用的方法计算某个数的阶乘

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
def Factorial(num): 
if num == 1 : return 1 
else: result = num * Factorial(num-1) 
return result
if __name__ == '__main__' : print('请输出你要计算的数: ') first_num = int(sys.stdin.readline( )) # first_num = int(input('请输入你要计算的数: '))
 result = Factorial(first_num) sys.stdin.write('{}的阶乘是:{}'.format(first_num, result))

运行结果

D:/vernacular/coding_ziyi/recursive.py

请输入你要计算的数: 5

5的阶乘是:120

上述三个小实例,演示了利用python进行输入和输出具体交互。可以在特定位置指定输出内容,进一步了解程序运行过程;完成格式化输出,更加清晰展示运行结果。最重要的是,可以输入不同内容而完成特定的功能。

接下来我们就来具体了解一下python的输入和输出的应用和实现。

〖 python的输入输出 〗

input----****根据实际需求指定输入内容的类型

python的内置函数input()可以接受用户输入的相关内容,提供给计算机程序所需的信息,更好的完成特定的任务。在python3.x中raw_input( )和input( )进行了整合,去除了raw_input( ),仅保留了input( )函数,其接收任意任性输入,将所有输入默认为字符串处理,并返回字符串类型。

#案例三first_num = int(input('请输入你要计算的数: '))

以第三个案例为例,就是为了获得用户想要计算阶乘的一个数字,但是input函数是以字符串的格式存储用户输入的内容的,因此需要在只输入之前强制转化一下数据的类型。而常用的类型转换函数还有str、float、list以及一些第三方包numpy和pandas中特有的类型array、DataFrame、series等等。

有了输入,计算机程序可以更好的按照需求完成相关任务。但是程序也需要将运行结果输出,让用户更好地明确程序的准确性。同样python的内置函数print()就可以很好的完成这一要求。按照常规套路,在安装教程中通常都会执行print(‘hello world’)来验证开发环境是否安装成功。因此输出函数是辅助调试程序的很好地助手。养成良好的格式化输出习惯,对于调整复杂程序或许能起到事半功倍的效果。

print----****建立良好的输出习惯

print(‘hello world’)是输出单个字符串,如果要输出多个字符串,可以以逗号分隔每个字符串并且在同一行完成一条print操作,执行完一条print操作会默认执行换行操作,因此如果想要多语句同时输出到同一行,则可以指定参数end=‘,’完成连接多行输出。而且也可以直接在输出中完成数值运算操作(字符串格式的内容必须写入引号中,数值型不需要)。

5.png

在上面的小应用中使用的是格式化动态输出变量的方法,这是python2.6之后推出新的格式化方法。按照指定位置(或设置参数)完成变量的格式化输出。format中有丰富的格式限定符,有很多格式限定方法,使用更加灵活,两种格式化方式如下:

#指定参数名称
print('新生成的数组为:{name}'.format(name=ori_data))#
使用位置参数print('{0}*{1}={2}'.format(j,i,multip),end=' '),

传统的格式化方法【print(‘%s*%s=%s’%j,%i,%multip)】也依旧是可以应用的,但是更多的是推荐使用新的格式化方法。

stdin&&stdout----python的标准输入输出

除了python内置的输入输出函数input和print,sys.stdin与sys.stdout(python的标准输入输出)也可以等价的完成类似的功能。因为input和print在原则就是通过调用sys.stdin的readline()方法和sys.stdout的write()方法上述两种方法而完成输入输出的,python内置的input和print操作也更便捷,input可以直接内置提示语,不需要另外输出提示语。但是sys.stdin与sys.stdout也有其他不同的功能,要根据实际需求看是否要应用标准的文件格式的输入输出操作。

〖 总结 〗

总之,一个完善的python应用的形成不会是一蹴而就的,因此每次在编写应用程序时,需要不断的进行代码的调试。这时为了很好的找到问题的症结所在,就需要很好地借助python的输入输出函数来完善python程序。

上一篇下一篇

猜你喜欢

热点阅读