输入/字符串格式化方法/ 数据截断/字符串翻转/reverse()/sort()/s.join()/`reduce()/

输入/输出
1. input和raw_input的区别

raw_input:将所有输入作为字符串看待,不管用户输入什么类型的都会转变成字符串。raw的含义就是生的;未加工的。
当希望通过raw_input获取一个整型或者浮点数时,必须在生成后对其使用intfloat进行转换。
input():当输入一个字符串的时候必须使用引号将其括起来,否则他将会引发一个SyntaxError的问题。从上述说明中,可以发现其实input()的实现是调用raw_input()函数的,然后再进行了一次eval()

def input(prompt):
     return (eval(raw_input(prompt)))  #input()相当eval(raw_input())

在Python3.x之后已经用input()替代raw_input了,用法功能却跟Python2.x中的raw_input()一样。

2.eval()

在python中的实现如下:eval(str[,globals[,locals]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。

3.多变量输入

a,b,c=map(int,input(‘a,b,c’.split(‘’)))

map()函数
map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

map(function, iterable, ...)
def square(x) :            # 计算平方数
...     return x ** 2
... 
>>> map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
[1, 4, 9, 16, 25]
>>> map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
 
# 提供了两个列表,对相同位置的列表数据进行相加
>>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
4. sys.stdout/sys.stdin

在python中调用print时,事实上调用了sys.stdout.write(obj+'\n')
print 将需要的内容打印到控制台,然后追加一个换行符,以下两行代码等价:

sys.stdout.write('hello' + '\n')
print('hello')

sys.stdin.readline( )会将标准输入全部获取,包括末尾的'\n',因此用len计算长度时是把换行符'\n'算进去了的,但是input( )获取输入时返回的结果是不包含末尾的换行符'\n'的。

因此如果在平时使用sys.stdin.readline( )获取输入的话,不要忘了去掉末尾的换行符,可以用strip( )函数(sys.stdin.readline( ).strip('\n'))sys.stdin.readline( )[:-1]这两种方法去掉换行。

说明:原始的sys.stdout指向控制台,如果把文件的对象引用赋给sys.stdout,那么print调用的就是文件对象的write方法。

end=’’

作用:传递一个空字符串,print函数不会在字符串末尾添加换行符,而是添加空字符串

三种字符串格式化方法

1.Tuple形式:Print ‘hello %s and %s’ % (‘df’ , ’another df’)
2.Dict形式:Print ‘hello %(first)s and %(second)s’ % {‘first’: ‘df’ , ‘second’: ’another df’}
方便和json格式互相转换,例如配置文件中
3..format():Print ‘hello {first} and {second}’.format(first=‘df’ , second= ’ano df’)

数据截断
1.round()

round(x, n)对浮点数近似取值,n表示保留的小数点位数。由于机器中的浮点数精度问题,机器在做二进制截断处理的时候可能会造成四舍五入的结果不对,所以round函数只适用于精度要求不高的场合;
round()当不传入第二个参数时默认取整,具体就是按照四舍五入来。但值得一提的是这里对小数末尾为5的处理方法:当末尾的5的前一位为奇数:向绝对值更大的方向取整(比如-1.5、1.5处理结果);当末尾的5的前一位为偶数:去尾取整(比如-2.5,-0.5,0.5和2.5的处理结果)。
参考

2.近似计算其他的选择:

a. 使用math模块中的一些函数,例如math.ceil(天花板除法);math.ceil()严格遵循向上取整,所有小数都是向着数值更大(不是绝对值更大)的方向取整,不论正负数都如此
b. int()函数是“向0取整”,取整方向总是让结果比小数的绝对值更小
c. 向下取整//math.floor;
d. 字符串格式化做截断,例如 "%.2f" % value(保留两位小数并变成字符串……如果还想用浮点数请披上float()的外衣)。
e. 最后,对浮点数要求很高的话,可使用decimal模块。

判断字符串的构成

string.isspace()—空格
string.isdigit()—数字
string.isalpha()—字母

字符串翻转

1.字符串切片:

result=s[::-1]

2.reversed方法:

result=’’.join(reversed(s))

3.reduce方法:

result=reduce(lambda x,y:y+x,s)

4.递归函数:

def func(s):
     if len(s)<1:
        return s
     return func(s[1:])+s[0]
result = func(s)

5.使用栈:

def func(s):
   l=list(s)#模拟全部入栈
   result=''
   while len(l)>0:
      result +=1.pop()#模拟出栈
   return result
result = func(s)

6.for循环:

def func(s):
     result =''
     max_index=len(s)-1
     for index,value n enumerate(s):
         result +=s[max_index-index]
     return result 
result = func(s)
reverse()reversed()

(1) reverse():列表的内置方法,用于列表中数据的翻转;s.reverse()这一操作的返回值是一个None 。改变了原有的序列表
(2) reversed():python自带的一个类,返回一个序列值经过翻转之后的迭代器,需要通过遍历、list()、或者next()等 方法获取作用后的值;不改变原有的序列表
a) 列表反转:

list = [1,3,5,7]
print(list(reversed(list)))

b) 元组的反转:

tuple = (1,2,3)
Print(tuple(reversed(tuple)))

c) 字符串的反转:

s=”’1234’
Print(‘’.join(reversed(s)))
sort()sorted()

a.sort()改变了原有的序列值,返回值为None
b=sorted(a)没有改变原有的序列表,返回一个新列表.

s.join()

将一个包含多个字符串的可迭代对象,转为用分隔符s连接的字符串:
a) 可迭代对象为列表:(如果列表中不是字符串,可以用str(n) for n in list 转换过来

tt=[12,345,67]
cc=''.join(tt)
ee='?'.join(tt)
print(cc)#1234567
print(ee)#12?345?67

b) 可迭代对象是元组:

ss=(12,345,67)
dd=''.join(ss)
gg='&'.join(ss)
print(cc)#1234567
print(ee)#12&345&67
reduce()函数:
reduce(function,iterable[,initializer])

function函数,有两个参数
iterable可迭代对象(元组、列表、字典、字符串等)
initializer可选,初始参数
示例:

def add(x+y):
    return x+y
reduce(add,[1,2,3,4,5])
or
reduce(lambda x,y:x+y,[1,2,3,4,5])

reduce()参考

if _name_ == ‘_main_’

if _name_ == ‘_main_’参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值