从大一刚入学上的计算机基础课程上学习python到现在已经过了很长时间了,但逐渐的对当时的应付了事感觉到后悔,想重新把它拾起来。调了几本书,最终决定从笨办法学python开始入门。
希望不是从入门到放弃。
exercise 1 第一个程序
# -*- coding: utf-8 -*-
print ("Hello World")
print ("Hello Again")
print ("I like typing this.")
print ("This is fun.")
print ('Yay! Printing.')
print ("I'd much rather you 'not'.")
print ('I "said" do not touch this.')
运行结果:
Hello World
Hello Again
I like typing this.
This is fun.
Yay! Printing.
I'd much rather you 'not'.
I "said" do not touch this.
用的notepad,自动默认的utf-8的编码模式,因此后面有的地方就没有写出来了。
exercise 2 注释和井号 octothorpe
这个部分主要就是井号可以作为注释得标志,练习略。
exercise 3 数字和计算
作业代码:
# -*- coding: utf-8 -*-
print ("I will now count my chickens:")
print ("Hens", 25 + 30 / 6)
print ("Roosters", 100 - 25 * 3 % 4)
print ("Now I will count the eggs:")
print ( 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6)
print ("Is it true that 3 + 2 < 5 - 7?")
print (3+2<5-7)
print ("What is 3+2?", 3+2)
print ("What is 5-7?", 5-7)
print ("Oh, that's why it's False")
print ("How about some more.")
print ("Is it greater?", 5>-2)
print ("Is it greater or equal?", 5>=-2)
print ("Is it less or equal?", 5<=-2)
print (10%3) #余数%
print(5+2)
print(7.0/4.0)
print(7/4)
运行结果:
I will now count my chickens:
Hens 30.0
Roosters 97
Now I will count the eggs:
6.75
Is it true that 3 + 2 < 5 - 7?
False
What is 3+2? 5
What is 5-7? -2
Oh, that's why it's False
How about some more.
Is it greater? True
Is it greater or equal? True
Is it less or equal? False
1
7
1.75
1.75
exercise 4 变量和命名
作业代码:
# -*- coding: utf-8 -*-
cars = 100
space_in_a_car = 4.0
drivers = 30
passenger = 90
cars_not_driven = cars - drivers #定义变量,
cars_driven = drivers
carpool_capacity = cars_driven *space_in_a_car
average_passengers_per_car = passenger / cars_driven
print ("There are", cars, "cars available.")
print("There are only", drivers, "drivers available.")
print("There will be ", cars_not_driven, "empty cars today.")
print("we can transport", carpool_capacity, "people today.")
print("we have", passenger, "to carpool today.")
print("we need to put about", average_passengers_per_car, "in each car.")
print(" Hey %s there." % "you")
运行结果:
There are 100 cars available.
There are only 30 drivers available.
There will be 70 empty cars today.
we can transport 120.0 people today.
we have 90 to carpool today.
we need to put about 3.0 in each car.
Hey you there.
exercise 5 更多的变量和打印
作业代码:
# -*- coding: utf-8 -*-
#格式化字符串
my_name = 'Zed A. Shaw'
my_age = 35 # not a lie
my_height = 74 #inches
my_weight = 180 # lbs
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'
print("Let's talk about %s." % my_name)
print("He's %d inches tall." % my_height)
print("He's %d pounds heavy." % my_weight)
print("Actually that's not too heavy.")
print("He's got %s eyes and %s hair." %(my_eyes, my_hair))
print("His teeth are usually %s depending on the coffee." % my_teeth)
#this line is tricky, try to get it exactly right
print("If I add %d, %d, and %d I get %d." % (my_age, my_height, my_weight, my_age + my_height +my_weight))
print("%.3f" % 3.1415926) #浮点数的设置
print("whatever %s print in the paper" % "wfjeo中国gj")
print(round(1.1733)) #取整
#%s 字符串替换 %d 整数替换 多个格式化字符串,用括号按顺序排列
#%c 格式化字符及ASCII码
#%s 格式化字符串(常用) 可将任何数据类型转化为字符串
#%d 格式化整数(常用)
#%u 格式化无符号整型
#%o 格式化无符号八进制数
#%x 格式化无符号十六进制数
#%f 格式化浮点数,可指定小数点后精度
#%e %g 科学计数法格式化浮点数
#%p 十六进制数格式化变量的地址
#%r 不管什么都打印出来(会连着单引号一起输出)
运行结果:
Let's talk about Zed A. Shaw.
He's 74 inches tall.
He's 180 pounds heavy.
Actually that's not too heavy.
He's got Blue eyes and Brown hair.
His teeth are usually White depending on the coffee.
If I add 35, 74, and 180 I get 289.
3.142
whatever wfjeo中国gj print in the paper
1
以上的代码练习还是比较simple的,从格式化字符串这里开始有了点意思。能够把字符串代换到输出的文本之间。主要时%s,%d,%r主要适用在debug的情形下
exercise 6 字符串和文本
作业代码:
# -*- coding: utf-8 -*-
#exercise 6 字符串和文本(字符串格式化字符%s)
x = "There are %d types of people." % 10
binary = "binary"
do_not = "don't"
y = "Those who know %s and those who %s." % (binary, do_not)
print (x)
print (y)
print ("I said: %r." % x) #%r用来做debug比较好,会显示变量的原始数据。
print ("I also said: '% s'" % y )
hilarious = False
joke_evaluation = "Isn't that joke so funny?! %r "
print (joke_evaluation % hilarious )
w = "This is the left side of..."
e = "a string with a right side."
print ( w+e ) #利用+可以合成更长的字符串
运行结果:
There are 10 types of people.
Those who know binary and those who don't.
I said: 'There are 10 types of people.'.
I also said: 'Those who know binary and those who don't.'
Isn't that joke so funny?! False
This is the left side of...a string with a right side.
exercise 7 更多打印
作业代码:
#-*- coding:utf-8 -*-
print ("Mary had a little lamb.")
print ("Its fleece was white as %s." %'snow')
print ("And everywhere that Mary went.")
print ("." * 10) #what'd that do? 10个dot
end1 = "C"
end2 = "h"
end3 = "e"
end4 = "e"
end5 = "s"
end6 = "e"
end7 = "B"
end8 = "u"
end9 = "r"
end10 = "g"
end11 = "e"
end12 = "r"
#watch that comma at the end. try removing it to see what happens
print (end1+end2 +end3 +end4 +end5 +end6)
print (end7 + end8 + end9 + end10 + end11 + end12 )
运行结果:
Mary had a little lamb.
Its fleece was white as snow.
And everywhere that Mary went.
..........
Cheese
Burger
exercise 8 打印 打印
作业代码:
formatter = " %r %r %r %r "
print (formatter % (1,2,3,4))
print (formatter % ("one", "two", "three", "four"))
print (formatter % (True, False, False, True))
print (formatter % (formatter, formatter, formatter, formatter))
print (formatter % (
"I had this thing.",
"That you could type up right.",
"But it didn't sing.",
"So I said goodnight."
))
注意如果遇到长代码,可以通过这样换行的形式,注意括号的位置,利用逗号可以保证输出结果不分行
运行结果:
1 2 3 4
'one' 'two' 'three' 'four'
True False False True
' %r %r %r %r ' ' %r %r %r %r ' ' %r %r %r %r ' ' %r %r %r %r '
'I had this thing.' 'That you could type up right.' "But it didn't sing." 'So I said goodnight.'
exercise 9 打印 打印 打印
作业代码:
#Here's some new strange stuff, remember type it exactly.
days = " Mon Tue Wed Thu Fri Sat Sun"
months = "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug" #\n 换行
print ("Here are the days: ", days)
print ("Here are the month: ", months)
print ("""
There's something going on here.
With the three double-quotes.
We'll be able to type as much as we like.
Even 4 lines if we want, or 5, or 6.
""") #三个“”“之间不能有双引号
运行结果:
Here are the days: Mon Tue Wed Thu Fri Sat Sun
Here are the month: Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
There's something going on here.
With the three double-quotes.
We'll be able to type as much as we like.
Even 4 lines if we want, or 5, or 6.
exercise 10 那是什么(转义序列)
作业代码:
print ("I am 6'2\" tall.")
print ('I am 6\'2" tall.') #???
tabby_cat = "\tI'm tabbed in." #\t 换行,并且空几个字符
persian_cat = "I'm split\non a line." #中间是'\n' I'm split on a line.
backslash_cat = "I'm \\ a \\ cat." #I'm \ a \ cat.
fat_cat = """
I'll do a list:
\t* Cat food
\t* Fishies
\t* Catnip\n\t* Grass
"""
print (tabby_cat)
print (persian_cat)
print (backslash_cat)
print (fat_cat)
print ("a\b" )
运行结果:
I am 6'2" tall.
I am 6'2" tall.
I'm tabbed in.
I'm split
on a line.
I'm \ a \ cat.
I'll do a list:
* Cat food
* Fishies
* Catnip
* Grass
其实目前对于转义序列的理解还不是非常到位,在例子中主要的作用是配合一些字幕产生特定的功能,比如说\n这样的(很巧的是这些代码确实很通用,比如说aegusib haha)。
另外我还对其他一些转义序列做了一个test。
代码:
print ("a\'b")
print ("a\"b")
print ("a\ab")
print ("a\bb")
print ("a\fb")
print ("\tab")
print ("a\vb")
print ("a\n\tb")
运行结果:
a'b
a"b
ab
b
a♀b
ab
a♂b
a
b
很慢的进度完成了这些作业~目前还是一些非常基本的操作。之后的练习可以尝试多写一些备注。