python 笔记
来源:互联网 发布:下载软件推荐 知乎 编辑:程序博客网 时间:2024/06/05 04:35
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
11. python 中不支持 ? : 运算符
12. python 也不支持 自增 ++ 和 自减 --
13. 一个例子:
str = raw_input('input a string\n')letters = 0space = 0digit = 0others = 0for c in str: if c.isalpha(): letters += 1 elif c.isspace(): space += 1 elif c.isdigit(): digit += 1 else: others += 1print 'char = %d, space = %d, digit = %d, others = %d' % (letters, space, digit, others)
首先,输入前面不加 int() 的时候,就是不强转,是一个字符串。
关于字符串可以调用的函数,常用的 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 nexti = 5palin(i)print
好吧。看下函数是如何实现的。
就在用到的地方直接 def fun_name(Parameter):
就OK了。之前可以有其他代码~~反正又没有主函数来调用。。
额,我用的 python2.5 版本 直接用 input() 接收的时候,发现数字OK, 字符不可以。改为 raw_input() 就OK了。
17.
s = 0l = range(1,21)def op(x): r = 1 for i in range(1,x + 1): r *= i return rs = 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 <module>
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 sysl = sys.stdin.read(1)sys.stdin.flush()r = sys.stdin.read(1)sys.stdin.flush()print l,r
input: 1234
第一次运行程序输出 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.staticVarprint Static.staticVara = Static()for i in range(3): a.varFun()
1
2
3
>>>
如果不用类的话由于python中 没有 static 这个功能,不能实现--就:
def varfunc(): var = 0 print 'var = %d' % var var += 1
if __name__ == '__main__': for i in range(3): varfunc()
>>> var = 0
var = 0
var = 0
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) * yMINIMUM = lambda x,y : (x > y) * y + (x < y) * x
python也没有 ? : 所以用上述实现。
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/ 下载:
- Python Imaging Library 1.1.7 for Python 2.5 (Windows only)
root = Tk()
root.title('Canvas')
canvas = Canvas(root,width = 400,height = 400,bg = 'yellow')
name 'Tk' is not defined
28 C中可以用结构体存储一个“对象”的数据,python中可以这样来实现:
# num : string
# name : string
# score[4]: list
student = []
for i in range(N):
student.append(['','',[]])
stu[i][0] = raw_input('input student num:\n')
stu[i][1] = raw_input('input student name:\n')
for j in range(3):
stu[i][j].append(int(raw_input('score:\n')))
ptr = list(arr1)
b = "bdfhjlnpq"
# 连接字符串
c = a + b
import time print time.ctime(time.time()) print time.asctime(time.localtime(time.time())) print time.asctime(time.gmtime(time.time()))
>>>
Tue Nov 19 15:47:47 2013
Tue Nov 19 15:47:47 2013
Tue Nov 19 07:47:47 2013
'''【程序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
- Python笔记
- python笔记
- python笔记
- python笔记
- python笔记
- PYTHON笔记
- python笔记
- python笔记
- python笔记
- Python笔记
- Python笔记
- Python笔记
- PYTHON笔记
- Python笔记
- python笔记-------------
- python笔记
- Python笔记
- python 笔记
- 设计模式(博客园精华集)
- MFC 多语言支持
- binder机制关于匿名service,handle是如何赋值的
- 为什么要使用Java泛型
- BSS段、数据段、代码段、堆与栈的详细说明
- python 笔记
- linux下安装jira
- Fillchar(var X; Count: Longint; value)
- framebuffer机制(linux2.6-s3c2440)
- byte short int long
- storyboard设计两级TabBarController,第二级Tabbar的位置问题
- 我是如何向老婆解释MapReduce的?
- C语言中的字符数组与字符串
- hook浅析