从零开始学数据分析之——《笨办法学Python》(习题21-26)

本文通过一系列的Python代码示例,展示了如何使用函数进行数学运算,如加减乘除,并探讨了字符串操作,包括字符串的编码和解码。此外,还涵盖了字符串的打印、格式化输出以及文件读取。最后,通过练习巩固了所学的知识,涉及字符串处理、列表操作和条件判断等。
摘要由CSDN通过智能技术生成

习题21——函数可以返回某些东西

源代码:

def add(a, b):
    print(f"ADDING {a} + {b}")
    return a + b

def subtract(a, b):
    print(f"SUBTRACTING {a} - {b}")
    return a - b

def multiply(a, b):
    print(f"MULTIPLYING {a} * {b}")
    return a * b

def divide(a, b):
    print(f"DIVIDING {a} / {b}")
    return a / b

print("Let's do some math with just functions!")

age = add(30, 5)
height = subtract(78, 4)
weight = multiply(90, 2)
iq = divide(100, 2)

print(f"Age: {age}, Height: {height}, Weight: {weight}, IQ: {iq}")

# A puzzle for the extra credit, type it in anyway.
print("Here is a puzzle.")

what = add(age, subtract(height, multiply(weight, divide(iq, 2))))

print("That becomes: ", what, "Can you do it by hand?")

运行结果:

Let's do some math with just functions!
ADDING 30 + 5
SUBTRACTING 78 - 4
MULTIPLYING 90 * 2
DIVIDING 100 / 2
Age: 35, Height: 74, Weight: 180, IQ: 50.0
Here is a puzzle.
DIVIDING 50.0 / 2
MULTIPLYING 180 * 25.0
SUBTRACTING 74 - 4500.0
ADDING 35 + -4426.0
That becomes:  -4391.0 Can you do it by hand?

习题22——到现在为止你学到了什么

首先,回到每一个习题的脚本里,把你遇到的每一个词和每一个符号(字符的别名)写下来。确保你的符号列表是完整的。

接下来,在每一个关键字和符号后面写出它的名字,并说明它的作用。

习题23——字符串、字节串和字符编码

源代码:

import sys
script, encoding, error = sys.argv


def main(language_file, encoding, errors):
    line = language_file.readline()
    
    if line:
        print_line(line, encoding, errors)
        return main(language_file, encoding, errors)
    
    
def print_line(line, encoding, errors):
    next_lang = line.strip()
    raw_bytes = next_lang.encode(encoding, errors = errors)
    cooked_string = raw_bytes.decode(encoding, errors = errors)
    
    print(raw_bytes, "<===>", cooked_string)
    
    
languages = open("languages.txt", encoding = "utf-8")

main(languages, encoding, error)

运行结果:

 习题24——更多的联系

源代码:

print("Let's practice everything.")
print('You\'d need to know \'bout escapes with \\ that do:')
print('\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 explanation
\n\t\twhere there is none.
"""

print("----------------")
print(poem)
print("----------------")


five = 10 - 2 + 3 - 6
print(f"This should be five: {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)

# remenber that this is another way to format a string
print("With a starting point of: {}".format(start_point))
# it's just like with an f"" string
print(f"We'd have {beans}, {jars}, and {crates} crates.")

start_point = start_point / 10

print("We can also do that this way:")
formula = secret_formula(start_point)
# this is an easy way to apply a list to a format string
print("We'd have {} beans, {} jars, and {} crates.".format(*formula))

运行结果:

Let's practice everything.
You'd need to know 'bout escapes with \ that do:

 newlines and 	 tabs.
----------------

	The lovely world
with logic so firmly planted
cannot discern 
 the needs of love
nor comprehend passion from intuition
and requires an explanation

		where there is none.

----------------
This should be five: 5
With a starting point of: 10000
We'd have 5000000, 5000.0, and 50.0 crates.
We can also do that this way:
We'd have 500000.0 beans, 500.0 jars, and 5.0 crates.

习题25——更多更多的练习

源代码:

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)

运行结果:

1deMacBook-Pro:data-python a1$ python3

Python 3.9.12 (main, Apr  5 2022, 01:53:17)

[Clang 12.0.0 ] :: Anaconda, Inc. on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> import ex25

>>> sentence = "All good things come to those who wait."

>>> words = ex25.break_words(sentence)

>>> words

['All', 'good', 'things', 'come', 'to', 'those', 'who', 'wait.']

>>> sorted_words = ex25.sort_words(words)

>>> sorted_words

['All', 'come', 'good', 'things', 'those', 'to', 'wait.', 'who']

>>> ex25.print_first_word(words)

All

>>> ex25.print_last_word(words)

wait.

>>> words

['good', 'things', 'come', 'to', 'those', 'who']

>>> ex25.print_first_word(sorted_words)

All

>>> ex25.print_last_word(sorted_words)

who

>>> sorted_words

['come', 'good', 'things', 'those', 'to', 'wait.']

>>> sorted_words = ex25.sort_sentence(sentence)

>>> sorted_words

['All', 'come', 'good', 'things', 'those', 'to', 'wait.', 'who']

>>> ex25.print_first_and_last(sentence)

All

wait.

>>> ex25.print_first_and_last_sorted(sentence)

All

who

习题26——恭喜你,现在可以考试了!

源代码:

print("How old are you?", end=' ')
age = input()
print("How tall are you?", end=' ')
print("How much do you weigh?", end=' '
weight = input()

print(f"So, you're {age} old, {height} tall and {weight} heavy.")

script, filename = argv

txt = open(filenme)

print("Here's your file {filename}:")
print(tx.read())

print("Type the filename again:")
file_again = input("> ")

txt_again = open(file_again)

print(txt_again_read())


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 explanation
\n\t\twhere there is none.
"""

print("--------------)
print(poem)
print(--------------")


five = 10 - 2 + 3 - 
print(f"This should be five: {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 = secret_formula(start_point)

# remember that this is another way to format a string
print("With a starting point of: {}".format(start_point))
# it's just like with an f"" string
print(f"We'd have {beans} beans, {jars} jars, and {crates} crates.")

start_point = start_point / 10

print("We can also do that this way:")
formula = secret_formula(startpoint)
# this is an easy way to apply a list to a format string
print("We'd have {} beans, {} jars, and {} crates.".format(*formula))



people = 20
cates = 30
dogs = 15


if people < cats:
    print "Too many cats! The world is doomed!"

if people < cats:
    print("Not many cats! The world is saved!")

if people < dogs:
    print("The world is drooled on!")

if people > dogs
    print("The world is dry!")


dogs += 5

if people >= dogs:
    print("People are greater than or equal to dogs.")

if people <= dogs
    print("People are less than or equal to dogs.)


if people = dogs:
    print("People are dogs.")

运行结果:

python3 ex26.py test.txt

How old are you? 6

How tall are you? 6

How much do you weigh? 6

So, you're 6 old, 6 tall and 6 heavy.

Here's your file {filename}:

Hello

How are you

Fine thanks

Type the filename again:

> test.txt

Hello

How are you

Fine thanks

Let's practice everything.

You'd need to know 'bout escapes with \ that do

newlines and  tabs.

--------------

The lovely world

with logic so firmly planted

cannot discern

the needs of love

nor comprehend passion from intuition

and requires an explanation

where there is none.

--------------

This should be five: 5

With a starting point of: 10000

We'd have 5000000 beans, 5000.0 jars, and 50.0 crates.

We can also do that this way:

We'd have 500000.0 beans, 500.0 jars, and 5.0 crates.

Too many cats! The world is doomed!

Not many cats! The world is saved!

The world is dry!

People are greater than or equal to dogs.

People are less than or equal to dogs.

People are dogs.

注意:源代码有错误,需要修改后方可正确运行!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值