What is Computer Science?
什么问题用计算可以解决?
如何用技术高效解决那些问题?
python有很多写法,代码示例:
content = "ada asdfsf sdfasdfs asdfasdfawsf wwwsadfwww abwwwba"
test = content.split()
words = set(test)
var = {w for w in words if w == w[::-1] and len(w) > 5}
print(var)
输出:
{'abwwwba'}
上面的表达式等同于:
for w in words:
if w == w[::-1] and len(w) > 5:
print({w})
print输出
print函数是Non-Pure函数,具有显示的副作用,返回是None,例题:
def with_if_statement():
"""
>>> with_if_statement()
1
"""
if c():
return t()
else:
return f()
def with_if_function():
return if_function(c(), t(), f())
def c():
"*** YOUR CODE HERE ***"
return True
def t():
"*** YOUR CODE HERE ***"
return 1
def f():
"*** YOUR CODE HERE ***"
return print(2)
习题及答案:
from operator import add, sub
def a_plus_abs_b(a, b):
"""Return a+abs(b), but without calling abs.
>>> a_plus_abs_b(2, 3)
5
>>> a_plus_abs_b(2, -3)
5
"""
if b < 0:
return a - b
else:
return a + b
def two_of_three(a, b, c):
"""Return x*x + y*y, where x and y are the two largest members of the
positive numbers a, b, and c.
>>> two_of_three(1, 2, 3)
13
>>> two_of_three(5, 3, 1)
34
>>> two_of_three(10, 2, 8)
164
>>> two_of_three(5, 5, 5)
50
"""
return max(a*a+b*b, a*a+c*c, b*b+c*c)
def largest_factor(n):
"""Return the largest factor of n that is smaller than n.
>>> largest_factor(15) # factors are 1, 3, 5
5
>>> largest_factor(80) # factors are 1, 2, 4, 5, 8, 10, 16, 20, 40
40
>>> largest_factor(13) # factor is 1 since 13 is prime
1
"""
i = 2
while i <= n:
if n % i == 0:
return int(n/i)
else:
i+=1
def if_function(condition, true_result, false_result):
"""Return true_result if condition is a true value, and
false_result otherwise.
>>> if_function(True, 2, 3)
2
>>> if_function(False, 2, 3)
3
>>> if_function(3==2, 3+2, 3-2)
1
>>> if_function(3>2, 3+2, 3-2)
5
"""
if condition:
return true_result
else:
return false_result
def with_if_statement():
"""
>>> with_if_statement()
1
"""
if c():
return t()
else:
return f()
def with_if_function():
return if_function(c(), t(), f())
def c():
"*** YOUR CODE HERE ***"
return True
def t():
"*** YOUR CODE HERE ***"
return 1
def f():
"*** YOUR CODE HERE ***"
return print(2)
def hailstone(n):
"""Print the hailstone sequence starting at n and return its
length.
>>> a = hailstone(10)
10
5
16
8
4
2
1
>>> a
7
"""
"*** YOUR CODE HERE ***"
a=1
while (n != 1):
print (int(n))
a = a + 1
if n % 2 == 0:
n = n / 2
else:
n = n * 3 + 1
print (int(n))
return int(a)