异度部落格

学习是一种生活态度。

0%

ibus 是一个很强大的输入,现在主要用于手机和 Linux 平台上。

下面是 ibus 日语输入法 ibus-anthy 的安装方法

sudo apt-get install ibus-anthy

然后在 ibus 的首选项里面添加日语->anthy 即可

本人一直感觉天书棋谈这个游戏很2,感觉电脑很是弱智。今天把一个增强库装了以后,一把都没赢过...悲剧了 增强库安装方法如下:

sudo apt-get install libeval0-dev 

下面的代码是这两天看 Python 核心编程的时候做的部分课后练习

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#5-2 运算符
#(a) 写一个函数,计算并返回两个数的乘积
#(b) 写一段代码调用这个函数,并显示它的结果
def mult(x,y) :
'返回两个数x和y的乘积'
return int(x) * int(y) #这里int()函数还是要的
a = raw_input('输入数a:')
b = raw_input('输入数b:')
print 'a * b = ', mult(a,b)
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#5-3 标准类型运算符. 写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)。
#A: 90–100 B: 80–89 C: 70–79 D: 60 F: <60
while True :
score = raw_input('输入分数:')
score = int(score) #将score类型由string转换为int
if score > 100 or score < 0 :
print '输入分数无效,程序退出'
break
elif score >= 90 :
print '%d is rank A' % score
elif score >= 80 :
print '%d is rank B' % score
elif score >= 70 :
print '%d is rank C' % score
elif score >= 60:
print '%d is rank D' % score
else :
print '%d is rank F' % score
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#5-4 取余。判断给定年份是否是闰年。使用下面的公式:
#一个闰年就是指它可以被4 整除,但不能被100 整除, 或者它既可以被4 又可以被100 整
#除。比如 1992,1996 和2000 年是闰年,但1967 和1900 则不是闰年。下一个是闰年的整世
#纪是 2400 年。
def isLeap(year) :
year = int(year)
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 :
return True
else :
return False

year = raw_input('输入一个年份:')
if (isLeap(year)) :
print year, '是闰年'
else :
print year, '不是闰年'
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#5-5 取余。取一个任意小于1 美元的金额,然后计算可以换成最少多少枚硬币。硬币有1
#美分,5 美分,10 美分,25 美分四种。1 美元等于100 美分。举例来说,0.76 美元换算结果
#应该是 3 枚25 美分,1 枚1 美分。类似76 枚1 美分,2 枚25 美分+2 枚10 美分+1 枚5 美分+1
#枚1 美分这样的结果都是不符合要求的。
money = raw_input('输入任意小于1 美元的金额:')
print money,'美元换算结果'
money = float(money)
money *= 100
money = int(money)
cent25 = money / 25
money %= 25
cent10 = money / 10
money %= 10
cent5 = money / 5
money %= 5
cent1 = money
if cent25 :
print '25美分*',cent25
if cent10 :
print '10美分*',cent10
if cent5 :
print '5美分*',cent5
if cent1 :
print '1美分*',cent1
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#5-6 算术。写一个计算器程序 你的代码可以接受这样的表达式,两个操作数加一个运算符:
#N1 运算符 N2. 其中 N1 和 N2 为整数或浮点数,运算符可以是+, -, *, /, %, ** 分别表示
#加法,减法, 乘法, 整数除,取余和幂运算。计算这个表达式的结果,然后显示出来。提示:
#可以使用字符串方法 split(),但不可以使用内建函数 eval().
def operator(str) :
if str.find('+') >= 0:
return '+'
elif str.find('-') >= 0:
return '-'
elif str.find('*') >= 0:
return '*'
elif str.find('/') >= 0:
return '/'
elif str.find('%') >= 0:
return '%'
else :
return '**'
calStr = raw_input('输入计算表达式,如a+b形式:')
op = operator(calStr)
num = calStr.split(op)
print num
res = 0.0
if op == '+':
res = float(num[0]) + float(num[1])
elif op == '-':
res = float(num[0]) - float(num[1])
elif op == '*':
res = float(num[0]) * float(num[1])
elif op == '/':
res = float(num[0]) / float(num[1])
elif op == '%':
res = int(num[0]) % int(num[1])
elif op == '**':
res = float(num[0]) ** float(num[1])
print 'result is %f' % str(res)
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#5-10 转换。写一对函数来进行华氏度到摄氏度的转换。转换公式为C = (F - 32) * (5 / 9)
#应该在这个练习中使用真正的除法, 否则你会得到不正确的结果。
F = float(raw_input('输入温度:'))
C = (F-32)*(5/9.0)
print '华氏度到摄氏度的转换后,结果为:',C
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#5-11 取余。
#(a) 使用循环和算术运算,求出 0-20 之间的所有偶数
#(b) 同上,不过这次输出所有的奇数
#(c) 综合 (a) 和 (b), 请问辨别奇数和偶数的最简单的方法是什么?
#(d) 使用(c)的成果,写一个函数,检测一个整数能否被另一个整数整除。 先要求用户输
#入两个数,然后你的函数判断两者是否有整除关系,根据判断结果分别返回 True 和 False;
#(a)
print '0-20 之间的所有偶数:'
i = 0
while i <= 20 :
if (i % 2 == 0) :
print i,' '
i += 1
print
#(b)
print '0-20 之间的所有奇数:'
i = 0
while i <= 20 :
if (i % 2 == 1) :
print i,' '
i += 1
print
#(d)
a = int(raw_input('输入整数a:'))
b = int(raw_input('输入整数b:'))
if (a % b == 0):
print 'a能被b整除'
else:
print 'a不能b整除'
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#5–15. 最大公约数和最小公倍数。请计算两个整数的最大公约数和最小公倍数。
def GCD(a, b):
'求a和b的最大公约数'
if b == 0 :
return a
else :
return GCD(b, a % b)
def LCM(a, b):
'求a和b的最小公倍数'
if (a * b == 0):
return 0
else :
return a * b / GCD(a,b)

x = int(raw_input('输入x:'))
y = int(raw_input('输入y:'))
print 'GCD:',GCD(x, y)
print 'LCM:',LCM(x, y)

多个signals连接一个slot的时候,可以使用QObject::sender()函数进行读取所产生的对象,之后只要加一个强制类型转换就ok了

实例如下:

连接部分:

connect(ui->button0, SIGNAL(clicked()), this, SLOT(append()));
connect(ui->button1, SIGNAL(clicked()), this, SLOT(append()));

slot实现部份:

QObject *object = QObject::sender();
QPushButton *sender = qobject_cast<QPushButton *>(object);

int()是 Python 的一个内部函数

Python 系统帮助里面是这么说的

>>> help(int)
Help on class int in module __builtin__:
class int(object)
| int(x[, base]) -> integer
|
| Convert a string or number to an integer, if possible. A floating point
| argument will be truncated towards zero (this does not include a string
| representation of a floating point number!) When converting a string, use
| the optional base. It is an error to supply a base when converting a
| non-string. If base is zero, the proper base is guessed based on the
| string content. If the argument is outside the integer range a
| long object will be returned instead.
>>> int(12.0)
12

int()函数可以将一个数转化为整数

>>> int('12',16)
18

这里有两个地方要注意:1)12 要以字符串的形式进行输入,如果是带参数 base 的话

2)这里并不是将 12 转换为 16 进制的数,而是说 12 就是一个 16 进制的数,int()函数将其用十进制数表示,如下

>>> int('0xa',16)
10
>>> int('10',8)
8

今天写的这个文本文件合并,基本上是把昨天写的那个两个脚本合并起来了,详见代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'mergeTextFile--用于合并两个文本文件'
import os
#输入两个文件名
while True:
file1 = raw_input('输入要合并的第一个文件名:')
if not os.path.exists(file1):
print '文件不存在'
continue
else :
break

while True:
file2 = raw_input('输入要合并的第二个文件名:')
if not os.path.exists(file2):
print '文件不存在'
continue
else :
break
#打开两个文件
contents = []
try :
fobj = open(file1, 'r')
except IOError, error :
print ' %s 打开失败:%s' % (file1,error)
else :
for eachline in fobj :
print eachline
contents.append(eachline)
fobj.close()
try :
fobj = open(file2, 'r')
except IOError, error :
print ' %s 打开失败:%s' % (file2,error)
else :
for eachline in fobj :
print eachline
contents.append(eachline)
fobj.close()
#创建合并文件
while True:
merge = raw_input('输入要合并后新文件名:')
if os.path.exists(merge):
print '文件已存在'
continue
else :
break
fobj = open(merge, 'w')
fobj.writelines(['%s%s' % (eachline, os.linesep) for eachline in contents])
fobj.close()

这个程序主要可以实现创建一个文本文件 makeTextFile.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'makeTextFile.py--创建一个文本文件'
import os
#输入文件名
while True :
filename = raw_input('输入文件名')
if os.path.exists(filename) :
print 'ERROR: %s already exists' % filename
else :
break

#输入文件内容
contents = []
print '/n输入每行文本,以#结束'
while True :
entry = raw_input('> ')
if entry == '.' :
break
else :
contents.append(entry)

#写入文件
fobj = open(filename, 'w')
fobj.writelines(['%s%s' % (eachline, os.linesep) for eachline in contents])
fobj.close()
print 'Done!'

这个用来显示 readTextFile.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'readTextFile.py--读取显示文本文件'
#获取文件名
filename = raw_input('输入文件名:')
#打开文件
try :
fobj = open(filename, 'r')
except IOError, error:
print ' %s 打开失败:%s' % (filename,error)
exit()
else :
#显示文本
for eachline in fobj :
print eachline
#文件关闭
fobj.close()

#2-2启动交互解释器,使用Python对两个数值(任意类型)进行加、减、乘、除运算。然后使用取余运算符来
#得到两个数相除的余数, 最后使用乘方运算符求A 数的B 次方。
#!/usr/bin/python
a = 8
b = 5
print 'a + b = %d' % (a + b)
print 'a - b = %d' % (a - b)
print 'a * b = %d' % (a * b)
print 'a / b = %d' % (a / b)
print 'a mod b = %d' % (a % b)
print 'a ^ b = %d' % (a ** b)
#2–4. 使用raw_input()函数得到用户输入
#(a) 创建一段脚本使用 raw_input() 内建函数从用户输入得到一个字符串,然后显示这个
#用户刚刚键入的字符串。
#(b) 添加一段类似的代码,不过这次输入的是数值。将输入数据转换为一个数值对象,(使
#用int()或其它数值转换函数) 并将这个值显示给用户看。(注意,如果你用的是早于1.5 的版
#本,你需要使用string.ato*() 函数执行这种转换)
#!/usr/bin/python
str = raw_input('Input a string:')
print str
num = raw_input('input a number:')
print int(num)
#2–5. 循环和数字
#分别使用while 和for 创建一个循环:
#(a) 写一个while 循环,输出整数从0 到10。(要确保是从0 到10, 而不是从0 到9 或从1 到10)
#(b) 做同 (a) 一样的事, 不过这次使用 range() 内建函数。
#!/usr/bin/python
i = 0
while i <= 10 :
print i
i += 1
print
for i in range(10) :
print i
#2–6. 条件判断 判断一个数是正数,还是负数, 或者等于0. 开始先用固定的数值,然后修改你的代码支持用户输入数值再进行判断。
#!/usr/bin/python
num = raw_input('Input a number:')
num = int(num)
if num > 0 :
print 'The Number is a Positive Number'
elif num < 0:
print 'The Number is a Negative Number'
else :
print 'The Number is Zero'
#2–7.
#循环和字串 从用户那里接受一个字符串输入,然后逐字符显示该字符串。先用while 循环实现,然后再用 for 循环实现。
#!/usr/bin/python
str = raw_input('Input a string:')
i = 0;
while i < len(str) :
print str[i]
i += 1

for c in str :
print c
#2–8. 循环和运算符 创建一个包含五个固定数值的列表或元组,输出他们的和。然后修
#改你的代码为接受用户输入数值。 分别使用while 和for 循环实现。
#!/usr/bin/python
print 'Input five numbers:'
i = 0
sum = 0
while i < 5 :
num = raw_input()
sum += int(num)
i += 1

print 'The Sum is: %d' % sum
#2–9.
#循环和运算符 创建一个包含五个固定数值的列表或元组,输出他们的平均值。本练习的难
#点之一是通过除法得到平均值。 你会发现整数除会截去小数,因此你必须使用浮点除以得到更
#精确的结果。 float()内建函数可以帮助你实现这一功能。
#!/usr/bin/python
print 'Input five numbers:'
i = 0
sum = 0.0
while i < 5 :
num = raw_input()
sum += float(num)
i += 1
avg = sum / 5
print 'The Average is: %f' % avg
#2–10.
#带循环和条件判断的用户输入 使用raw_input()函数来提示用户输入一个1 和100 之间的
#数,如果用户输入的数满足这个条件,显示成功并退出。否则显示一个错误信息然后再次提示
#用户输入数值,直到满足条件为止。
#!/usr/bin/python
while 1 :
num = raw_input('Input a number(1-100):')
num = int(num)
if (num >= 0) and (num <= 100) :
print 'Inut Success'
break
else :
print 'Input Again'
#2–11.
#带文本菜单的程序 写一个带文本菜单的程序,菜单项如下(1)取五个数的和 (2) 取五个
#数的平均值....(X)退出。由用户做一个选择,然后执行相应的功能。当用户选择退出时程序
#结束。这个程序的有用之处在于用户在功能之间切换不需要一遍一遍的重新启动你的脚本
#!/usr/bin/python
i = 0
sum = 0
print 'Input five numbers:'
while i < 5:
num = raw_input()
sum += float(num)
i += 1

while 1:
print '1.Sum'
print '2.Average'
print 'x.Exit'
select = raw_input('Input your select:')
if select == '1' :
print 'The Sum is %d' % sum
elif select == '2' :
avg = sum / 5
print 'The Average is %f' % avg
else :
break;

今天终于拿出 Python 核心编程开始学习 Python,一切语言都是由 helloworld 开始的,下面这个就是 Python 版本的

print 'Hello World!'

这语法..要多简单有多简单,要多暴力有多暴力