《笨方法学Python》ex24-31

ex24

快速打字和学习英语的重要性


ex25 更多更多的实践

def break_words(stuff):
	"""This function will break up words for us."""
	words = stuff.split(' ')
	return words
	
def sort_words(words):
	'''Sorts the words.'''
	return sorted(words)
	
def print_first_word(words):
	'''Print  the first word after poping it off.'''
	word = words.pop(0)
	print word
	
def print_last_word(words):
	'''Prints the last word after poping it off.'''
	word = words.pop(-1)
	print word 
	
def sort_sentence(sentence):
	'''Takes in a full sentence and returns the sorted words.'''
	words = break_words(sentence)
	return sort_words(words)
	
def print_first_and_last(sentence):
	'''Print the first and last words of the sentence.'''
	words = break_words(sentence)
	print_first_word(words)
	print_last_word(words)
	
def print_first_and_last_sorted(sentence):
	'''Sorts the words then prints the firsr and last one.'''
	words = sort_sentence(sentence)
	print_first_word(words)
	print_last_word(words)

需要注意:def 变量 之后跟引号,然后下一行缩进。

import ex25 → ex25 作为一个模块出现不需要.py的后缀,在这个模块里定义的函数也可以直接调用出来


运行终端时出现的提示:

unexpected unindent : 缩进不正确

invalid syntax  :  语法错误  (可能是漏掉引号或者括号)


ex26 恭喜你,现在可以考试了!

import ex25


def break_words(stuff):
    """This function will break up words for us."""
    words = stuff.split(' ')
    return words

def sort_words(words):
    """Sorts the words."""
    return sorted(words)

def print_first_word(words):
    """Prints the first word after popping it off."""
    word = words.pop(0)
    print word

def print_last_word(words):
    """Prints the last word after popping it off."""
    word = words.pop(-1)
    print word

def sort_sentence(sentence):
    """Takes in a full sentence and returns the sorted words."""
    words = break_words(sentence)
    return sort_words(words)

def print_first_and_last(sentence):
    """Prints the first and last words of the sentence."""
    words = break_words(sentence)
    print_first_word(words)
    print_last_word(words)

def print_first_and_last_sorted(sentence):
    """Sorts the words then prints the first and last one."""
    words = sort_sentence(sentence)
    print_first_word(words)
    print_last_word(words)

print "Let's practice everything."
print 'You\'d need to know \'bout escapes with \\ that do \n newlines and \t tabs.'

poem = """
\tThe lovely world
with logic so firmly planted
cannot discern \n the needs of love
nor comprehend passion from intuition
and requires an explantion
\n\t\twhere there is none.
"""

print "--------------"
print poem
print "--------------"

five = 10 - 2 + 3 - 5
print "This should be five: %s" % five

def secret_formula(started):
	jelly_beans = started * 500
	jars = jelly_beans / 1000
	crates = jars / 100
	return jelly_beans, jars, crates

start_point = 10000
beans, jars, crates = secret_formula(start_point)

print "With a starting point of: %d" % start_point
print "We'd have %d jeans, %d jars, and %d crates." % (beans, jars, crates)

start_point = start_point / 10

print "We can also do that this way:"
print "We'd have %d beans, %d jars, and %d crabapples." % secret_formula(start_point)

sentence = "All god\tthings come to those who weight."

words = ex25.break_words(sentence)
sorted_words = ex25.sort_words(words)

print_first_word(words)
print_last_word(words)
print_first_word(sorted_words)
print_last_word(sorted_words)
sorted_words = ex25.sort_sentence(sentence)
print sorted_words

print_first_and_last(sentence)
print_first_and_last_sorted(sentence)

主要的问题:

用到了ex25中的函数 没有import

漏引号、半个括号、关键词拼写错误

缩进错误


ex27 记住逻辑关系

逻辑术语、真值表、True、False


ex28 布尔表达式练习

"abc" == 1、"abc" == 0、"abc" == "bc"  都是 False

"abc" and "EFG" 返回 " abc",1 and 1 返回 1 。 因为都是返回两个被操作对象中的一个,而非他们的布尔表达式True或者False,而且是第一个操作数(abc)

短路逻辑:任何以 False 开头的 and 语句都是直接处理成 False,不会检查后面的语句, True、or 同理


ex29-30  if、else和if

多个 elif 块都是 True 时 Python 只会运行它遇到的是 True 的第一个块,所以只有第一个 True 的块会运行。

people = 30
cars = 40
buses = 15


if cars > people:
	print "We should take the cars."
elif cars < people:
	print "We should not take the cars."
else:
	print "We can't decide."

if buses > cars:
	print "That's too many buses."
elif buses < cars:
	print "Maybe we could take the buses."
else:
	print "We still can't decide."

if people > buses:
	print "Alright, let's just take the buses."
else:
	print "Fine, let's stay home then."


ex31 作出决定

print "You enter a dark room with two doors. Do you go through door #1 or #2?"

door = raw_input("> ")

if door == "1" :
	print "There's a giant bear here eating a cheese cake. What do you do?"
	print "1. Take the cake."
	print "2. Scream at the bear."
	
	bear = raw_input("> ")
	
	if bear == "1" :
		print "The bear eats your face off. Good job! "
	elif bear == "2 " :
		print "The bear eats your legs off. Good job! "
	else :
		print "Well, doing %s is probably better. Bear runs away." %bear
		
elif door == "2" :
	print "You stare into the endless abyss at Cthlhu's retina"
	print "1. Blueberries."
	print "2. Yellow jacket clothspins."
	print "3. Understanding revolvers yelling melodies."
	
	insanity = raw_input("> ")
	
	if insanity == "1" or insanity == "2":
		print "Your boby survives powered by a mind of jello. Good job!"
	else:
		print "The insanity rots your eyes into a pool of muck. Goof job!"
		
else:
	print "Your stumble around and fall on a knife and die. Good job!"

注意:  if、elif、else 需要接引号, 然后转行缩进

怎么判断一个数出于某个值域中?

1,使用 1 < x < 10    2,用 x in range(1, 10) 

转载于:https://my.oschina.net/kgjc/blog/537883

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值