python中奇数怎么表示_如何在python中从列表中添加奇数?

A.raw_input返回数据类型为string的值,因此需要进行类型转换>>> item = raw_input("Enter Number:")

Enter Number:2

>>> type(item)

>>> item = int(raw_input("Enter Number:"))

Enter Number:4

>>> type(item)

>>>

B.类型转换期间的异常处理如果用户从数字中输入任何其他字符,则上面的代码将引发需要处理的ValueError异常。

例如>>> item = int(raw_input("Enter Number:"))

Enter Number:w

Traceback (most recent call last):

File "", line 1, in

ValueError: invalid literal for int() with base 10: 'w'

带异常处理的演示:>>> try:

... item = int(raw_input("Enter Number:"))

... except ValueError:

... print "Enter only digits."

...

Enter Number:rt

Enter only digits.

C.与实际算法相关

不需要变量逻辑。

b.返回值时不需要if循环。

c.最好将函数号改为sumOfOddNumbers,即更有意义。

演示:def sumOfOddNumbers (numbers_list):

total = 0

for number in numbers_list:

if (number % 2 == 1):

total += number

return total

E.运行以下代码的时间:lst = range(10000000)

def sum_of_odd_numbers1():

return sum((i*(i%2) for i in lst), 0)

def sum_of_odd_numbers2():

return sum((i for i in lst if i%2), 0)

def sum_of_odd_numbers3():

return sum(filter(lambda x: x%2, lst), 0)

def sumOfOddNumbers ():

total = 0

for number in lst:

if (number % 2 == 1):

total += number

return total

import time

start_time = time.time()

sum_of_odd_numbers1()

end_time = time.time()

print "Timing of sum_of_odd_numbers1:", end_time - start_time

start_time = time.time()

sum_of_odd_numbers2()

end_time = time.time()

print "Timing of sum_of_odd_numbers2:", end_time - start_time

start_time = time.time()

sum_of_odd_numbers3()

end_time = time.time()

print "Timing of sum_of_odd_numbers3:", end_time - start_time

start_time = time.time()

sumOfOddNumbers()

end_time = time.time()

print "Timing of sumOfOddNumbers:", end_time - start_time

各自输出:vivek:~$ python /home/vivek/workspace/vtestproject/study/timer.py

Timing of sum_of_odd_numbers1: 2.4171102047

Timing of sum_of_odd_numbers2: 1.73781108856

Timing of sum_of_odd_numbers3: 2.09230113029

Timing of sumOfOddNumbers: 1.42781090736

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值