def table():
'''
打印九九乘法表
:return:
'''
arr=[1,2,3,4,5,6,7,8,9]
for i in arr :
j = 1
while j<=i:
print("%d*%d=%d "%(i,j,i*j),end='')
j+=1
print("")
def star(k):
'''
打印对称星星
:param k: 最长的一行星星个数
:return:
'''
i=1
while i<2*k:
if i<k:
j=i
else:
j=2*k-i
while j>0:
print("*",end="")
j-=1
print("")
i+=1
table()
star(6)
def sum(a,b,c):
'''
求三个数的和
:param a:
:param b:
:param c:
:return:
'''
print("%.2f+%.2f+%.2f=%.3f"%(a,b,c,a+b+c))
def avg(a,b,c):
'''
求三个数的平均值
:param a:
:param b:
:param c:
:return:
'''
print("(%.2f+%.2f+%.2f)/3=%.3f"%(a,b,c,(a+b+c)/3.0))
def test_list(a):
'''
求列表的最大值与最小值以及平均数
:param a:
:return:
'''
a.sort()
print("最大值:",a[len(a)-1])
print("最小值:",a[0])
sum = 0
for item in a:
sum+=item
print("平均值:",sum/len(a))
def leapYear():
'''
判断用户输入的是否是闰年
:return:
'''
year = int(input("请输入年份"))
if year%4==0:
print("该年是闰年")
else :
print("该年不是闰年")
def main():
sum(2,6,8)
avg(3,5,7.6)
a = [23,65,87,32,56,78]
test_list(a)
while True:
leapYear()
main()
def money(m):
'''
2.根据一定公式计算应缴金额
:param m: 工资
:return: 应缴金额
'''
sum=0
w=pow(10,5)
if m<=w:
sum=m*0.1
elif m>w and m<2*w:
sum=w*0.1+0.075*(m-w)
elif m>2*w and m<4*w:
sum=0.05*(m-2*w)
elif m>4*w and m<6*w:
sum=0.03*(m-4*w)
elif m>6*w and m<10*w:
sum=0.015*(m-6*w)
elif m>10*w:
sum=0.01*(m-10*w)
else:
sum=sum
print("%d应缴金额:%d"%(m,sum))
def zhenshu():
'''
3.一个整数,它加上100后是一个完全平方数,
再加上168又是一个完全平方数,请问该数是多少?
:return:
'''
i = 0
flag = 0
flag1 = 0
while True:
j = 0
while j*j<i+170:
if j*j==(i+100):
flag = 1
if j*j==(i+168):
flag1 = 1
if flag ==1 and flag1==1:
print("该整数为:",i)
break
j += 1
i +=1
flag = 0
flag1 = 0
def rab(n):
'''
4、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
问每个月的兔子总数为多少?
:param n:
:return:
'''
if n==1 or n==0:
return 1
else:
return rab(n-1)+rab(n-2)
def main():
n = 0
while n<15:
print("第%d月:%d对"%(n,rab(n)))
n += 1
print("")
money(1200000)
print("")
zhenshu()
main()
def noseven():
'''
设计"过7游戏"的程序
A。打印1-100之间除了包含7或者7的倍数至外的数字。
B。使用while循环完成上述操作。
:return:
'''
i = 1
flag = 0
while i<100:
numstr = str(i)
if i%7==0 or numstr.find('7')!= -1:
flag = 1
if flag !=1:
print(i)
i += 1
flag =0
noseven()
def hannuo(n,a,b,c):
'''
汉诺塔
:return:
'''
if n==1:
print("第%d个:form %s to %s"%(n,a,c))
else:
hannuo(n-1,a,c,b)
print("第%d个:form %s to %s" % (n, a, c))
hannuo(n-1,b,a,c)
hannuo(2,"a","b","c")
def randomthree():
'''
1 2 3 4 四个数字随机组合成不重复的三位数
:return:
'''
flag = [[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]]
num=[1,2,3,4]
s = 0
c = 1
for i in range(0,4):
if flag[i][0]==0 and flag[i][1]==0:
s += num[i]*100
flag[i][0] = 1
flag[i][1] = 1
for t in range(0,3):
for j in range(0,4):
if flag[j][0]==0 and flag[j][2]==0:
s +=num[j]*10
flag[j][0] = 1
flag[j][2] = 1
break
for k in range(0,4):
if flag[k][0] == 0 and flag[k][3] == 0:
s +=num[k]
flag[k][0] = 1
flag[k][3] = 1
print("%d种: %d"%(c,s))
c +=1
break
for w in range(0,4):
if flag[w][0]==0 and flag[w][3]==0:
s =int(s/10)
s *= 10
s +=num[w]
flag[w][0] = 1
flag[w][3] = 1
print("%d种: %d"%(c,s))
c += 1
break
for h in range(0,4):
flag[h][0] = 0
flag[h][3] = 0
flag[i][0] = 1
s = 0
s += num[i]*100
for h in range(0, 4):
for g in range(0,4):
flag[h][g] = 0
flag[i][1] = 1
s = 0
randomthree()
def howold():
'''
年龄问题
:return:
'''
i = 0
old = 10
while i<4:
old +=2
i +=1
print("第五个人 %d 岁"%old)
howold()
简单字符处理
# 1.使列表的值不重复
list = [1,1,6,3,1,5,2]
def norepeat1(list):
i = 0
while i<len(list):
j = i+1
while j<len(list):
if list[j]==list[i]:
del list[j]
else:
j += 1
i += 1
print(list)
norepeat1(list)
# 2.实现字符串反转三种方法
str = "string"
#第一种
def rev1(str):
str2=""
i = len(str)-1
while i>-1:
str2=str2+str[i]
i -= 1
print(str2)
rev1(str)
#第二种
def rev2(str):
str2 = str[::-1]
print(str2)
rev2(str)
#第三种
def rev3(str):
if len(str) <1:
return str
return rev3(str[1:])+str[0]
print(rev3(str))
# 3.一行代码实现对列表a中的偶数位置的元素进行加3后求和
# 从网上找到的解决方法
# 3.1 取出偶数下标;filter
# filter(lambda x:x%2==0,range(len(list))) ==>[0,2,4]
# 3.2 取出对应下标值:map
# map(lambda x:list[x],filter(lambda x:x%2==0,range(len(list)))) ==>[1,3,5]
# 3.3 对应值加3 : lamda
# map(lambda x:x+3,map(lambda x:list[x],filter(lambda x:x%2==0,range(len(list)))))
# 3.4 将数组求和 reduce
list = [1,2,3,4,5]
from functools import reduce
print(reduce(lambda x,y:x+y,map(lambda x:x+3,map(lambda x:list[x],filter(lambda x:x%2==0,range(len(list)))))))
# # 自我揣摩
# #奇数长度的字符串偶数下标
# list1 = "12345"
# def sum(list):
# if len(list)<2:
# return int(list[0])+3
# return int(list[0])+3+sum(list[2::])
# print(sum(list1))
# 4.对列表进行以绝对值从小到大的排序
list = [-2,1,3,-6]
import math
def list_sort(list):
i = 0
list1 = []
f=[0,0,0,0]
while i<len(list):
flag = 0
#寻找还未被选中过的数当目标数
k = 0
while k<len(f):
if f[k]==0:
min = list[k]
flag = k
break
k += 1
j = 0
#寻找比这个目标数还小的数
while j<len(list):
if math.fabs(list[j])<math.fabs(min) and f[j]==0:
min = list[j]
flag = j
j += 1
f[flag] = 1
list1.append(min)
i += 1
print(list1)
list_sort(list)
# 5.将alist由age从大到小排序
alist = [{'name':'a','age':20},
{'name':'b','age':30},
{'name':'c','age':25}]
def alist_sort(alist):
i = 0
list1 = []
alist1 = []
f = [0, 0, 0]
while i < len(alist):
flag = 0
# 寻找还未被选中过的数当目标数
k = 0
while k < len(f):
if f[k] == 0:
min = alist[k]["age"]
flag = k
break
k += 1
j = 0
# 寻找比这个目标数还小的数
while j < len(alist):
if alist[j]["age"] < min and f[j] == 0:
min = alist[j]["age"]
flag = j
j += 1
f[flag] = 1
list1.append(flag)
i += 1
i = len(alist)-1
while i>-1:
alist1.append(alist[list1[i]])
i -= 1
print(alist1)
alist_sort(alist)
# 6.将字符串处理成字典
str="k:1|k1:2|k2:3|k3:4"
def strtodict(str):
dict = {}
list = str.split("|")
for item in list:
list2 = item.split(":")
dict[list2[0]]=list2[1]
print(dict)
strtodict(str)
注册校验-登录
list =[{"user":"a123456","password":"123456a"},
{'user': 'a7789465', 'password': '984645a'}]
def checkRegister():
'''
注册的校验程序:
A)实现循环从键盘输入用户名和密码
B)如果用户名或者密码任一一个输入的是“QUIT”直接退出程序。
C)判断用户名长度为6-20,用户名开头必须以字母开头。
D)密码长度至少6位,不能为纯数字,不能有空格。
E)如果不符合上述规则、打印出不符合的原因、提示重新输入。并跳转到用户名输入阶段。
F)将正确的用户名和密码存入字典里,并打印校验成功字样。
:return:
'''
global list
while True:
while True:
user = input("please enter your name")
if user == "QUIT":
break
elif user[0].isalpha()!=True:
print("start must with a letter")
elif 6>len(user) or 20<len(user):
print("the length of user must be 6-20")
else:
break
while True:
password = input("please enter your password")
if password == "QUIT":
break
elif password.find(" ")!=-1:
print("must be no spaces")
elif 6>len(password):
print("the length of password must be longer 6")
elif password.isdigit()==True:
print("can not be only digit")
else:
print("succeed!")
break
d = {"user":user,"password":password}
list.append(d)
print(d)
# checkRegister()
def login(name,password):
global list
flag = 0
for item in list:
if item["user"]==name and item["password"]==password:
print("login success")
flag = 1
break
if flag==0:
print("login failed")
login("a123456","123456a")
login("a123456d","123456ad")