欢迎来到今天的讨论,我们将探讨,如何用python画不同大小的满天星星 用python代码画出一片星空,让我们开始吧!
1、阶乘 (1).迭代法
def cheng(x): result = 1 for i in range(1,x+1): result = result * i return result num = int(input("输入一个数字:"))
print(num,"的阶乘是:",cheng(num)) (2).递归法
def cheng(x): if x == 1: return 1 else: return x * cheng(x-1) num = int(input("输入一个数字:"))
print(num,"的阶乘是:",cheng(num)) 2、汉诺塔 def hannoi(n,x,y,z): if n == 1: print(x,'-->',z) else: hannoi(n-1,x,z,y) print(x,'-->',z) hannoi(n-1,y,x,z) num = int(input('please enter a number:'))
hannoi(num,'X','Y','Z') 3、文件操作: 题目: 1. 小甲鱼的对话单独保存为boy_*.txt的文件(去掉“小甲鱼:”) 2. 小客服的对话单独保存为girl_*.txt的文件(去掉“小客服:”) 3. 文件中总共有三段对话,分别保存为, ,, , , 共6个文件(提示:文件中不同的对话间已经使用“=================”分割)
文件内容: 小甲鱼:aaaaaaaaaaaaaaaaaaaaaaaa 小客服:bbbbbbbbbbbbbbbbbbbbbbbbbbb 小甲鱼:ccccccccccccccccccccccccc 小客服:dddddddddddddddddddddddddddd ================ 小甲鱼:呵呵111111111 小客服:222222222222222222222222222 小甲鱼:333333333333333333333333 小客服:4444444444444444444444 ================ 小甲鱼:// 小客服:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 小甲鱼:.......................... 小客服:,,,,,,,,,,,,,,,,,,,,,,,,,,, 代码: f = open("D:\\...\\") #打开文件
#1、设置中间变量 boy = [] girl = [] num = 1
#2、循环文件内容,遇到特定条件后进行保存 for i in f: #!循环文件的使用方式 if i[:3] == '小甲鱼': boy.append(i.split(':')[1]) #把符合条件的内容放到列表 if i[:3] == '小客服': girl.append(i.split(':')[1])
if i[:3] == '===': boy_file = "boy_" + str(num) + ".txt" #对要保存的文件名进行命名 girl_file = "girl_" + str(num) + ".txt" b = open(boy_file,"w") #以‘写入’方式打开文件 b.writelines(boy) #!是用writelines,不是write b.close() #!写入后一定要保存 print("boy_file saved") g = open(girl_file,"w") g.writelines(girl) g.close() print("girl_file saved") boy = [] girl = [] num += 1
#3、对最后一段文字需要单独处理 boy_file = "boy_" + str(num) + ".txt" #num在前面循环结束前已经+1 girl_file = "girl_" + str(num) + ".txt" b = open(boy_file,"w") b.writelines(boy) b.close() print("last boy_file saved")
g = open(girl_file,"w") g.writelines(girl) g.close() print("last girl_file saved") print('byebye!') 4、编写一个程序,求 100~999 之间的所有水仙花数。 如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
for i in range(100, 1000): sum = 0 temp = i while temp: sum = sum + (temp%10) ** 3 #主程序 temp //= 10 # 注意这里要使用地板除哦~ if sum == i: print(i) 结果: 153 370 371 407 5、三色球问题 有红、黄、蓝三种颜色的求,其中红球 3 个,黄球 3 个,绿球 6 个。先将这 12 个球混合放在一个盒子中,从中任意摸出 8 个球,编程计算摸出球的各种颜色搭配。
print('red\tyellow\tblue') #结果展示方法 for red in range(0, 4): for yellow in range(0, 4): for green in range(2, 7): if red + yellow + green == 8: # 注意,下边不是字符串拼接,因此不用“+”哦~ print(red, '\t', yellow, '\t', green) #结果展示方法 结果: red yellow blue 0 2 6 0 3 5 1 1 6 1 2 5 1 3 4 2 0 6 2 1 5 2 2 4 2 3 3 3 0 5 3 1 4 3 2 3 3 3 2 6、判断字母、空格、数字 6.判断字母、空格、数字 7、编写一个函数,判断传入字符串参数是否为"回文联"(倒读 = 顺读) 我的方法: def Hui(x): for i in range(len(x)): if x[i] == x[(len(x)-1)-i]: continue else: return 'not huiwenlian' return 'huiwenlian111'
str1 =input('give a string:') print(Hui(str1)) 答案: def Hui(string): list1 = list(string) list2 = reversed(list1) #用函数将列表倒装 if list1 == list(list2): return 'HuiWen' else: return 'NotHuiWen' print(Hui('上海自来水来自海上')) 8、递归法拆分数字 8.递归法拆分数字 9、利用字典创建通讯录程序 题目
以下为代码
print(''' |--- 欢迎进入通讯录程序 ---| |--- 1:查询联系人资料 ---| |--- 2:插入新的联系人 ---| |--- 3:删除已有联系人 ---| |--- 4:退出通讯录程序 ---| ''')
txl = {}
def one(): name = input('请输入联系人姓名:') if name in txl: print(name,':',(name)) give_code() else: print('查无此人') give_code()
def two(): name = input('请输入联系人姓名:') if name in txl: print('输入的姓名在通讯录中已存在 --->> ',name,':',(name)) change = input('是否修改用户资料(YES/NO):') if change == 'YES': number = input('请输入用户联系电话:') txl[name] = number print('修改成功!') give_code() else: give_code() else: number = input('请输入用户联系电话:') txl[name] = number print('插入成功!') give_code() def three(): name = input('请输入联系人姓名:') if name in txl: print('确认删除这条记录吗? --->> ',name,':',(name)) change = input('确认(YES/NO):') if change == 'YES': del txl[name] print('删除成功!') give_code() else: print('取消删除!') give_code() else: print('查无此人') give_code()
def four(): print('|--- 感谢使用通讯录程序 ---|')
def give_code(): code = input('请输入相关的指令代码:') if code == '1': one() elif code == '2': two() elif code == '3': three() elif code == '4': four() else: print('指令输入错误!!!')
give_code()
原文:
因篇幅问题不能全部显示,请点此查看更多更全内容