自己自学python,偶然间看到笨方法学python(作者是Zed Shaw)这一本书,在接下来的一段时间内,会完成书中所有的练习,希望自己能坚持下去,能够养成好习惯:读和写、注重细节、发现不同。
祝自己好运!相应的环境: ubuntu 12.04 python2.7.3
1.笨办法学 Python-第一题
#!/usr/bin/python#coding=utf-8#笨办法学 Python-第一题#关于print 的使用print 'hello world!'print '笨办法学 Python-第一题'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'
#在print语句中注意单双引号的使用,中英文都是可以使用的
运行结果:
hello world!
笨办法学 Python-第一题 i like typing this this is fun yay!printing i'd much rather you 'not' i "said" do not touch this2.笨办法学 Python-第二题
#!/usr/bin/python#coding=utf-8#笨办法学 Python-第二题#学习关于注释和#号的使用#A comment,this is so you can read you program later.#Anything after the # is ignored by python.print 'I could have code like this' #and the comment after is ignore#you can also use a comment to "disable" or comment out a piece of code:#print "this won't run"print "This will run"
知识点:学习关于注释的使用和#号的使用
运行结果:
I could have code like this
This will run3.笨办法学 Python-第三题
#!/usr/bin/python#coding=utf-8#笨办法学 Python-第三题#数字和数学计算print "多行内容书写:'''内容''' "print '''python 中所有的运算符:1.算术运算符:+ plus 加号- minus 减号/ slash 斜杠* asterisk 星号% percent 取余** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000取整除 - 返回商的整数部分,9//2 输出结果 4 , 9.0//2.0 输出结果 4.02.比较预算符:< less-than 小于号> greater-than 大于号<= less-than-equal 小于等于号>= greater-than-equal 大于等于号== 等于 - 比较对象是否相等 eg:(a == b) 返回 False。!= 不等于 - 比较两个对象是否不相等 eg:(a != b) 返回 true.<> 不等于 - 比较两个对象是否不相等 eg:(a <> b) 返回 true。这个运算符类似 !=3.赋值运算符:= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c+= 加法赋值运算符 c += a 等效于 c = c + a-= 减法赋值运算符 c -= a 等效于 c = c - a*= 乘法赋值运算符 c *= a 等效于 c = c * a/= 除法赋值运算符 c /= a 等效于 c = c / a%= 取模赋值运算符 c %= a 等效于 c = c % a**= 幂赋值运算符 c **= a 等效于 c = c ** a//= 取整除赋值运算符 c //= a 等效于 c = c // a4.位运算符:& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0eg:(a & b) 输出结果 12 ,二进制解释: 0000 1100| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。eg:(a | b) 输出结果 61 ,二进制解释: 0011 1101^ 按位异或运算符:当两对应的二进位相异时,结果为1eg:(a ^ b) 输出结果 49 ,二进制解释: 0011 0001~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1eg:(~a ) 输出结果 -61 ,二进制解释: 1100 0011<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。eg:a << 2 输出结果 240 ,二进制解释: 1111 0000>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数eg:a >> 2 输出结果 15 ,二进制解释: 0000 11115.逻辑运算符:and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。eg:(a and b) 返回 20。or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。eg:(a or b) 返回 10。not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。eg:not(a and b) 返回 False6.成员运算符:in 如果在指定的序列中找到值返回 True,否则返回 False。eg:x 在 y 序列中 , 如果 x 在 y 序列中返回 True。not in 如果在指定的序列中没有找到值返回 True,否则返回 False。eg:x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。7.身份运算符s is 是判断两个标识符是不是引用自一个对象eg:x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 Falseis not is not 是判断两个标识符是不是引用自不同对象eg:x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。'''print 'i will now count my chickens:'print '母鸡的数量:'print 'hens:',25.0+30.0/6print 'roosters:',100.0-25.0*3%4print 'now i will count eggs:'print 3+2+1-5+4%2-1.0/4+6print 'is it true that 3+2<5-7 ?'print 3+2 < 5-7print 'what is 3+2',3+2print 'what is 5-7',5-7print "oh,that's why it's false"print "how about some more"print "is it greater?",5>-2print 'is it greater or equal?',5>=-2print 'is it less or equal?',5<=-2
知识点:简单四则运算,多行编写'''内容''',逻辑运算符True and False,浮点运算,注释的添加
运行结果:
多行内容书写:'''内容'''
python 中所有的运算符:
1.算术运算符: + plus 加号 - minus 减号 / slash 斜杠 * asterisk 星号 % percent 取余 ** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000 取整除 - 返回商的整数部分,9//2 输出结果 4 , 9.0//2.0 输出结果 4.02.比较预算符:
< less-than 小于号 > greater-than 大于号 <= less-than-equal 小于等于号 >= greater-than-equal 大于等于号 == 等于 - 比较对象是否相等 eg:(a == b) 返回 False。!= 不等于 - 比较两个对象是否不相等 eg:(a != b) 返回 true.<> 不等于 - 比较两个对象是否不相等 eg:(a <> b) 返回 true。这个运算符类似 !=3.赋值运算符:
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c += 加法赋值运算符 c += a 等效于 c = c + a -= 减法赋值运算符 c -= a 等效于 c = c - a *= 乘法赋值运算符 c *= a 等效于 c = c * a /= 除法赋值运算符 c /= a 等效于 c = c / a %= 取模赋值运算符 c %= a 等效于 c = c % a **= 幂赋值运算符 c **= a 等效于 c = c ** a//= 取整除赋值运算符 c //= a 等效于 c = c // a4.位运算符:
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 eg:(a & b) 输出结果 12 ,二进制解释: 0000 1100| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 eg:(a | b) 输出结果 61 ,二进制解释: 0011 1101^ 按位异或运算符:当两对应的二进位相异时,结果为1 eg:(a ^ b) 输出结果 49 ,二进制解释: 0011 0001~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 eg:(~a ) 输出结果 -61 ,二进制解释: 1100 0011<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 eg:a << 2 输出结果 240 ,二进制解释: 1111 0000>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 eg:a >> 2 输出结果 15 ,二进制解释: 0000 11115.逻辑运算符:
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 eg:(a and b) 返回 20。or x or y 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 eg:(a or b) 返回 10。not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 eg:not(a and b) 返回 False6.成员运算符:
in 如果在指定的序列中找到值返回 True,否则返回 False。 eg:x 在 y 序列中 , 如果 x 在 y 序列中返回 True。not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 eg:x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。7.身份运算符
s is 是判断两个标识符是不是引用自一个对象 eg:x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 Falseis not is not 是判断两个标识符是不是引用自不同对象 eg:x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 i will now count my chickens: 母鸡的数量: hens: 30.0 roosters: 97.0 now i will count 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? False4.笨办法学 Python-第四题
#!/usr/bin/python#coding=utf-8#笨办法学 Python-第四题#变量和命名#定义车辆的总数cars=100#每辆车的空间space_in_a_space=4.0#定义司机的数量drivers=30#乘客的数量passengers=90#空闲的车辆cars_not_driven=cars-drivers#可以开车的司机数cars_drivern=drivers#总的乘车人数:carpool_capacity=cars_drivern*space_in_a_space#每辆车的人数:average_passengers_per_car=passengers/cars_drivernprint '定义车辆的总数:'print 'there are ',cars,'cars available.'print '可以开车的司机数: ',driversprint '空闲的车辆: ',cars_not_drivenprint '可以乘坐乘客的总数: ',carpool_capacityprint '每辆车的人数: ',average_passengers_per_car
知识点: 变量的使用和定义,注释的添加,语句的拼接,变量尽可能要见名知义,以字母,下划线开头,不要定义为关键字
执行结果:
定义车辆的总数:
there are 100 cars available. 可以开车的司机数: 30 空闲的车辆: 70 可以乘坐乘客的总数: 120.0 每辆车的人数: 35.笨办法学 Python-第五题
#!/usr/bin/python#coding=utf-8#笨办法学 Python-第五题#更多的变量和打印使用格式化字符串的方式#own info introductmy_name='yuchen'my_age=20my_height=175my_weight=120my_addr='北京'print 'my_name: %s' % my_nameprint 'my_age: %d' % my_ageprint 'height is %d and weight is %d' %(my_height,my_weight)print '地址(%%r): %r' % my_addrprint '地址(%%s): %s' % my_addr#普通的计算print '普通计算:'print 'if I add %d,%d,sum=%d' %(my_height,my_weight,(my_height+my_weight))print '''python 所有的格式化字符了:%s 字符串 (采用str()的显示)%r 字符串 (采用repr()的显示)%c 单个字符%b 二进制整数%d 十进制整数%i 十进制整数%o 八进制整数%x 十六进制整数%e 指数 (基底写为e)%E 指数 (基底写为E)%f 浮点数%F 浮点数,与上相同%g 指数(e) 或浮点数 (根据显示长度)%G 指数(E)或浮点数 (根据显示长度)%% 字符"%"'''
知识点:格式化字符串输出
运行结果(注意%r和%s的区别,在面对中文的时候,%s输出中文,%r则输出编码):
my_name: yuchen
my_age: 20 height is 175 and weight is 120 地址(%r): '\xe5\x8c\x97\xe4\xba\xac' 地址(%s): 北京 普通计算: if I add 175,120,sum=295python 所有的格式化字符了:
%s 字符串 (采用str()的显示)%r 字符串 (采用repr()的显示)
%c 单个字符
%b 二进制整数
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g 指数(e) 或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"
6.笨办法学 Python-第六题
关于字符串的讲解:
1.字符串通常是指你想要展示给别人的、或者是你想要从程序里“导出”的一小段字符。Python 可以通过文本里的双引号 " 或者单引号 ' 识别出字符串来.
2.字符串可以包含格式化字符 %s,只要将格式化的变量放到字符串中,再紧跟着一个百分号 %,再紧跟着变量名即可。唯一要注意的地方,是如果想要在字符串中通过格式化字符放入多个变量的时候,需要将变量放到 ( ) 圆括号中,而且变量之间用 , 逗号隔开。不如”(milk, eggs, bread, soup)”
#!/usr/bin/python#coding=utf-8#笨办法学 Python-第六题#字符串的简单学习#单个格式化字符串x='there are %d type of pelple' % 10binary='binary'do_not="don't"#多个格式化字符串y="those who konw %s and those who %s" %(binary,do_not)print xprint yprint "I said: %r" %xprint "I also said: %s" %y#通过两个变量来组成字符串格式化sol= Falsejok='is not that joke so funny ?! %r'print jok % sol#语句连接方式w='i love 'e='china'print w+e
知识点: 字符串连接方式'+号'(在做拼接的时候要保持两边的类型相同),字符串格式化的使用
执行结果:
there are 10 type of pelple
those who konw binary and those who don't I said: 'there are 10 type of pelple' I also said: those who konw binary and those who don't is not that joke so funny ?! False i love china