def getInteger(prompt, lowerlimit=0, upperlimit=None):
while True:
try:
num = int(raw_input(prompt))
if num < lowerlimit:
print "outof lower band", lowerlimit
continue
if upperlimit and upperlimit < num:
print "outof upper band", upperlimit
continue
return num
except:
continue
nums = sorted([
getInteger("Enter a number, which bigger than 0: "),
getInteger("Enter a number, which bigger than 0: "),
])
msg = "%d can not be deved by %d" if nums[1] % nums[0] else "%d can be deved by %d"
print msg % (nums[1], nums[0])
求大神帮写一段python代码,最好是每一行都解释一下什么意思!麻烦了谢谢,这个问题很简单,是这样的:在西面的一个番国里有两位神仙,在山中的树荫下下棋,一只百老猴子每天都在树上偷看他们运用棋子的技法度,于是就学到了他们的(运用棋子)技巧。
人们听到这件事都前往观看,(等他们到时)神仙已经飘隐离开了,老猴和人下棋,全国上下没有人能赢(它)的。人们感觉得这件事很奇怪,便把(这件事)向朝廷上告。
皇上召集善于下棋的人和它较量,全部不是(老猴)的对手。有人说有个叫杨靖的人擅长下回棋——当时杨靖因为犯法被关在监狱中,答(皇上)下令释放他。
杨靖请求用盘子来装满桃子,放在老猴的面前,老猴的心思被桃子牵绊,没有心思下棋,于是便被(杨靖)打败。
金字塔算法: CONST_ROW = 8CONST_TAB = "\t"lstRow = []# /* 遍历打印的行数. */for intRow in range(1, CONST_ROW + 1): # /* 遍历打印的列数 (折半+1). */ for intCol in range(1, intRow + 1): # /* 每次仅计算最后一个数并追加到列表末尾. # 避免对中部之前的每一行每一列的重复数值计算, # 一定程度上能提高执行效率. */ if intCol == intRow: lstRow.append(2 ** (intCol - 1)) strOut = CONST_TAB * (CONST_ROW - intRow) + \ CONST_TAB.join(map(str, lstRow)) # /* 从第二行开始需要执行列表翻转 (补齐折半-1). */ if intRow > 1: strOut = "%s%s%s" % (strOut, CONST_TAB, CONST_TAB.join(map(str, reversed(lstRow[:-1])))) print(strOut)输出: 其他两题建议自己思考,自己练习,这样才能提高。
一个列表,里面全是整数。
假设给定目标数字A,列表中将有两个整数的和为A,求这两个整数的索引值. 你可以假设每一个输入都只有一个解。 例子 给定列表nums = [2, 7, 11, 15], 目标数字 = 9, 因为 nums[0] + nums[1] = 2 + 7 = 9,所以 return [0, 1]. class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ result = [[index1,index2+index1+1] for index1,key1 in enumerate(nums) for index2,key2 in enumerate(nums[index1+1:]) if key1+key2==target] return result[0]。
def datedif(date1,date2):
"利用datetime模块计算两个日期字串之间的天数,格式YYYY-MM-DD"
if date1==date2:
return 0
from datetime import date
d1=map(int,date1.split('-'))
d2=map(int,date2.split('-'))
d1=date(d1[0],d1[1],d1[2])
d2=date(d2[0],d2[1],d2[2])
return (d1-d2).days
def dttoday(date1):
"计算date1到今天的天数,date1格式为YYYY-MM-DD"
from datetime import date
date2= date.today().isoformat()
return datedif(date1,date2) #利用上面的datedif(date1,date2)函数
def dtb(date1):
"计算生日为date1的人还有多久过生日,date1格式为YYYY-MM-DD"
from datetime import date
today=date.today()
d1=map(int,date1.split('-'))
d1=date(today.year,d1[1],d1[2]) #今年的生日
if today>d1: #如果今年已经过了生日,就计算到明年生日的天数
d1=d1.replace(year=d1.year+1)
return (d1-today).days日期格式稍有不同,请参考!
祝你成功!
金字塔算法:
CONST_ROW = 8
CONST_TAB = "\t"
lstRow = []
# /* 遍历打印的行数. */
for intRow in range(1, CONST_ROW + 1):
# /* 遍历打印的列数 (折半+1). */
for intCol in range(1, intRow + 1):
# /* 每次仅计算最后一个数并追加到列表末尾.
# 避免对中部之前的每一行每一列的重复数值计算,
# 一定程度上能提高执行效率. */
if intCol == intRow:
lstRow.append(2 ** (intCol - 1))
strOut = CONST_TAB * (CONST_ROW - intRow) + \
CONST_TAB.join(map(str, lstRow))
# /* 从第二行开始需要执行列表翻转 (补齐折半-1). */
if intRow > 1:
strOut = "%s%s%s" % (strOut,
CONST_TAB,
CONST_TAB.join(map(str, reversed(lstRow[:-1]))))
print(strOut)输出:
其他两题建议自己思考,自己练习,这样才能提高!
简单的,可以使用python 的CGI模块,需要你的服务器开启CGI支持。
网页内容如下:
<html>
<head>
<meta ; charset=UTF-8" />
<title>python cgi</title>
</head><body>
<p style="font-size:24pt;color:red">;输入登录密码:</p>
<form name="zhaji" action="login.py" method="post">
<p>;密 码:<input type="password" name="ma" size="9"></p>
<input type="button" name="shuru" value="http://www.kddxy.net//ming/登录">
</form>
</body></html>
login.py文件内容如下:
#!/usr/bin/python
#coding:utf-8
import cgi
form = cgi.FieldStorage()
ma = ""
if 'ma' in form:
ma = form["ma"].value
print '''Content-Type: text/html\n\n'''
print '''<html><head><meta ; charset=UTF-8" /> <title>python cgi</title></head><body><p>;你输入的密码是:%s</p> </body></html>''' % ma