Python之排列组合



#1,排列

比如随机抛两个或三个骰子,列出所有的可能:

    
    import itertools
    a = range(7)[1:]
    print list(itertools.product(a))      #一个骰子
    print list(itertools.product(a, a))   # 两个骰子

>>> print list(itertools.product(a, a)) [(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (4, 1), (4, 2), (4, 3), (4, 4), (4, 5), (4, 6), (5, 1), (5, 2), (5, 3), (5, 4), (5, 5), (5, 6), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6)]

阅读全文 »


十进制转化成其他进制



是按正常的手算流程,取余数得来,使用了一个递归,代码如下:

dic_alpha = {10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F' }
converted_list = []
def convert(num, base):
	num = abs(num)
	remainder = num % base
	if num >= base:
		convert(num / base, base)
	converted_list.append(remainder)
def format_print(num, base):
	if num < 0:
		result = '-'
	else:
		result = ''
	convert(num, base)
	
	for item in converted_list:
		if item in dic_alpha.keys():
			item = dic(item)
			
		result += str(item)
	print result

阅读全文 »


Python 抓取新闻,放到数据库



使用的BeautifulSoup库,比较小白,对于中文,有的页面需要添加from_encoding = "GBK", 还有数据库的各种转码,比如con.escape_string(),这个问题卡了一下午+一晚上,还是在StackOverFlow上撞到的解决方案, 以腾讯新闻为例:

阅读全文 »


Tkinter 使用小结



###很喜欢PyQt的,但是Tkinter作为Python自带的GUI库,还是不得不了解一下,挺简介方便的,一共包含了15个组件:

  1. Button 按钮。类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作/事件

  2. Canvas 画布。提供绘图功能(直线、椭圆、多边形、矩形) ;可以包含图形或位图

  3. Checkbutton 选择按钮。一组方框,可以选择其中的任意个(类似 HTML 中的 checkbox)

  4. Entry 文本框。单行文字域,用来收集键盘输入(类似 HTML 中的 text)

  5. Frame 框架。包含其他组件的纯容器

  6. Label 标签。用来显示文字或图片

  7. Listbox 列表框。一个选项列表,用户可以从中选择

  8. Menu 菜单。点下菜单按钮后弹出的一个选项列表,用户可以从中选择

  9. Menubutton 菜单按钮。用来包含菜单的组件(有下拉式、层叠式等等)

    阅读全文 »


基于Tkinter简单计算器



这个是小米系统的计算器界面:

模仿了一下,高富帅的界面成屌丝了:

阅读全文 »