1. 输入 i = int(raw_input('input gain:\n')) 或 input 详细 http://blog.csdn.net/carolzhang8406/article/details/6093537
2. 输出 print 'bonus = ', bonus
3. if else 语句
if i <= 10000:
bonus = i * 0.1
elif i < 20000:
bonus = i * 2000
else:
bonus = 10000 * 0.1 + (i - 100000) * 0.075
如果你写import math
那么在程序中你得写:math.sqrt
4. 用print输出多个变量可以用 , 隔开。
print x y z 是不可以的
print x, y, z 是ok的
格式化输出 print "%-5d" % n
多个变量一起格式化输出时: 'char = %d, space = %d, digit = %d, others = %d' % (letters, space, digit, others)
5.
l = [x]
l.append()
l.sort()
print l
>>> [2, 5, 7]
6. 连着输出 10个 * : print '*' * 10
试了下, 一个 print 语句 后面 加不加 \n 都是默认换行的呢
7. chr( 97) 求出 ASCII 为 97的字符
ord('a') 求a的ascii值
8. range
>>> for i in range(1, 5):
print i ,
1 2 3 4
>>> for i in range(5):
print i ,
0 1 2 3 4
>>>
for i in range(1, 10):
for j in range(1, i + 1):
print '%d * %d = %d' % (i, j, i * j),
print '\n'
sys.stdout.write
可以输出一行数据,不会默认自动换行了。。。
需要 import sys
9. pythonwin 运行 出现 systax error 时,可能出现了语法错误 如 for m in range(101, 201): 写成 from m in range(101, 201):
这个时候,光标会停在错误的一行。
10 , 将一个正整数分解质因数
k = int(raw_input("input\n"))
print k, '=',
for i in range(2, k + 1):
while k != i:
if k % i == 0:
print i,
print '*',
k = k / i
else:
break
print k
12. python 也不支持 自增 ++ 和 自减 --
13. 一个例子:
str = raw_input('input a string\n')
letters = 0
space = 0
digit = 0
others = 0
for c in str:
if c.isalpha():
letters += 1
elif c.isspace():
space += 1
elif c.isdigit():
digit += 1
else:
others += 1
print 'char = %d, space = %d, digit = %d, others = %d' % (letters, space, digit, others)
关于字符串可以调用的函数,常用的 isalpha() 判断一个字符是否是 中英文字母, isspace() 是否是空格, isdigit() 是否是数字
遍历字符串 for c in str 来实现。
14.
lambda 函数 详解: http://www.jbxue.com/article/12892.html
reduce函数详解: http://blog.sina.com.cn/s/blog_798f21a00100wnrl.html
15.
t = a
a = a + b
b = t
这三行代码如何用一行就实现呢?
a, b = a + b, a
b,a = a , a + b
16.
C 经典100例python
'''
【程序27】
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
1.程序分析:
2.程序源代码:
'''
def palin(n):
next = 0
if n <= 1:
next = input()
print
print next
else:
next = input()
palin(n - 1)
print next
i = 5
palin(i)
print
就在用到的地方直接 def fun_name(Parameter):
就OK了。之前可以有其他代码~~反正又没有主函数来调用。。
额,我用的 python2.5 版本 直接用 input() 接收的时候,发现数字OK, 字符不可以。改为 raw_input() 就OK了。
17.
s = 0
l = range(1,21)
def op(x):
r = 1
for i in range(1,x + 1):
r *= i
return r
s = sum(map(op,l))
print '1! + 2! + 3! + ... + 20! = %d' % s
此处的map函数 相当于 对 L 里的每个元素执行op()函数, map返回的结果应该是 [ op(1), op(2), `````op(20)]
而sum 则可以对这个[] 里面的所有元素求和。
map详细用法请参考 http://my.oschina.net/zyzzy/blog/115096
map 还有一个用法第一个参数不是函数名而是类型 ia, ib, ic = map(int , raw_input().split()) 具体参考 http://www.cnblogs.com/skyhacker/archive/2012/02/03/2337572.html
#但是我没有跑通上面这个程序,不知道为么⊙﹏⊙
File "E:\python\myPython\Script28.py", line 9, in
s = sum(map(op,l))
TypeError: 'long' object is not callable
18.
用来判断是否是回文,可以用字符串来解决
x = int(raw_input("input a number:\n"))
x = str(x)
for i in range(len(x)/2):
19. sys.stdin
import sys
l = sys.stdin.read(1)
sys.stdin.flush()
r = sys.stdin.read(1)
sys.stdin.flush()
print l,r
第一次运行程序输出 1 2
再运行一次,不会弹出输入框,但是会输出 3 4
read(1) 每次从缓冲区中读取一个字符
flush()清除缓冲区中内容
将两个 fulsh 注释掉之后,
>>>(输入 )1234
>>> (输出)
1 【第一次运行】
2 3 【第二次运行】
4 【第三次运行】
+_+ 不是很懂。。。
20. if __name__ == '__main__': 详细参考下面:
http://zhidao.baidu.com/question/189875539.html?qbl=relate_question_0
21. 二维数组的用法:
if __name__ == '__main__':
a = []
sum = 0.0
for i in range(2):
a.append([])
for j in range(2):
a[i].append(float(raw_input("input num:\n")))
for i in range(2):
sum += a[i][i]
print sum
print a
5.0
>>> [[1.0, 2.0], [3.0, 4.0]]
22. l = [] 的 append 方法 和 insert 方法
l.append(iA)
l.insert(index, iB)
23. python中类的写法:
来自c经典100例Python实现
题目:学习static定义静态变量的用法
class Static:
staticVar = 0
def varFun(self):
self.staticVar += 1
print self.staticVar
print Static.staticVar
a = Static()
for i in range(3):
a.varFun()
def varfunc():
var = 0
print 'var = %d' % var
var += 1
if __name__ == '__main__':
for i in range(3):
varfunc()
24 用python 实现的 swap 函数好简单:
def swap(x, y):
x, y = y, x
return (x, y)
可以用lambda来代替。lambda是表达式,很短小。一般会与 filter map reduce 一起结合使用。
详细参考: http://www.cnblogs.com/longdouhzt/archive/2012/05/19/2508844.html
ex: 用lambda实现的 max 和 min 函数
MAXIMUM = lambda x,y : (x > y) * x + (x < y) * y
MINIMUM = lambda x,y : (x > y) * y + (x < y) * x
25
a = 1
b = ~a
b = -2
26 python调用图形界面?
可以使用一个轻量级的跨平台GUI Tk
python 可以通过 Tkinter接口调用这个库。 Tkinter就是 TK 的python接口。
典型使用方法:
from Tkinter import *
#创建一个画布
canvas = Canvas(width=800, height=600, bg='green')
#start your canvas
#在画布上写字
canvas.create_text(22, 88, text = 'Leehom', fill = 'pink')
#在画布上画圆
canvas.create_oval(310 ,250,310 ,250 , width=1)
#在画布上加载图片
im = PhotoImage(file = 'C:\\lh.gif') #使用PhotoImage打开图片【TK默认加载的是gif格式的图片】
canvas.create_image(30, 50, image = im) #使用create_image将图片添加到Canvas组件中
#end
canvas.pack(expand=YES, fill=BOTH) #将canvas添加到主窗口
mainloop() #应该是让画布一直显示的吧
——————————————————
如何加载 非 gif 格式的图片?
需要加载 from PIL import Image, ImageTK 模块
我的python安装目录 D:\Program Files\python2.5.4\Lib\site-packages 下没有PIL 模块
可以去 http://www.pythonware.com/products/pil/ 下载:
import time
print time.ctime(time.time())
print time.asctime(time.localtime(time.time()))
print time.asctime(time.gmtime(time.time()))
'''
【程序96】
题目:计算字符串中子串出现的次数
1.程序分析:
2.程序源代码:
'''
if __name__ == '__main__':
str1 = raw_input('input a string:\n')
str2 = raw_input('input a sub string:\n')
ncount = str1.count(str2)
print ncount