python入门到放弃篇46绘制几何图形
昨天,因为有时间。所以,久违地python编程一波。突然有一个新奇的想法,然后去实践了一下,又烧死了不少脑细胞,不过已经习惯了。
废话不多说,今天的代码有点小多,希望各位客官能够满意。
代码1:
#随机数三角形
def graph():string = ''N = int(input('设置图形长度:'))for i in range(0,N):random_num = random.randrange(0,10)//生成0-9随机数string += str(random_num)print(string)
graph()
运行结果如下:
代码2:
def graph2():string = ''ls = []N = int(input('设置图形长度:'))for i in range(0, N):random_num = random.randrange(0, 10)string += str(random_num)ls.append(string)print(string)#print(ls)#count = 0#设置一个计数器count = len(ls)while True:count -= 1if count >= 0:print(ls[count])else:print('退出程序!!')break
graph2()
运行结果如下:
代码3:
#正序不可变奇偶等腰三角形3
def graph3():string = ''ls = []N = int(input('设置图形长度:'))for i in range(0, N):random_num = random.randrange(0, 10)string += str(random_num)ls.append(string)#print(string)#print('ls的长度是',len(ls))print('graph3的result:')for l in range(0,len(ls),2):print(' '*((len(ls) - len(ls[l]))//2)+ls[l])print()
graph3()
运行结果如下:
代码4:
#倒序可变奇偶等腰三角形
def graph4():string = ''ls = []N = int(input('设置图形长度:'))for i in range(0, N):random_num = random.randrange(0, 10)string += str(random_num)ls.append(string)count = len(ls)+1print('graph4的result')while count != 0:count -= 2if count >= 0:print(' '*((len(ls)-len(ls[count]))//2)+ls[count])else:print('退出程序!!')break
graph4()
运行结果如下:
代码5:
#倒序奇偶全为奇的等腰三角形
def graph5():string = ''ls = []N = int(input('设置图形长度:'))for i in range(0, N):random_num = random.randrange(0, 10)string += str(random_num)ls.append(string)if N % 2 == 0:print('graph5的result')while N != 0:N -= 2if N >= 0:print(' ' * ((len(ls) - len(ls[N])) // 2) + ls[N])else:print('退出程序!!')breakelif N % 2 != 0:N += 1print('graph5的result')while N != 0:N -= 2if N >= 0:print(' ' * ((len(ls) - len(ls[N])) // 2) + ls[N])else:print('退出程序!!')break
graph5()
运行结果如下:
代码6:
#绘制菱形,时间复杂度o(n^2)
def graph6():string = ''ls = []N = int(input('设置菱形最大长度:'))for i in range(0, N):random_num = random.randrange(0, 10)string += str(random_num)ls.append(string)# print(string)print('graph6的result:')for l in range(0, len(ls), 2):print(' ' * ((len(ls) - len(ls[l])) // 2) + ls[l])if len(ls[l]) == N or len(ls[l]) == N - 1:half = len(ls[l]) - 3while half >= 0:if half >= 0:print(' ' * ((len(ls) - len(ls[half])) // 2) + ls[half])half -= 2else:break
graph6()
运行结果如下:
代码7:
def graph7():string = ''ls = []N = int(input('设置漏口最大长度:'))for i in range(0, N):random_num = random.randrange(0, 10)string += str(random_num)ls.append(string)# print(string)ls_reverse = ls[::-1]print('graph7的result:')for l in range(0,len(ls_reverse),2):print(' ' * ((len(ls_reverse)-len(ls_reverse[l]))//2)+ls_reverse[l])if N % 2 == 0:for e in range(3,len(ls),2):print(' ' * ((len(ls) - len(ls[e]))//2)+ls[e])else:if N % 2 != 0:for e in range(2, len(ls), 2):print(' ' * ((len(ls) - len(ls[e])) // 2) + ls[e])
graph7()
运行结果如下:
代码6的变化:
#绘制字符菱形
def graph6_2():sign = ''ls = []string = str(input('请输入语句:'))N = len(string)for i in range(0,len(string)):sign += string[i]ls.append(sign)# print(string)print('graph6的result:')for l in range(0, len(ls), 2):print(' ' * ((len(ls) - len(ls[l])) // 2) + ls[l])if len(ls[l]) == N or len(ls[l]) == N - 1:half = len(ls[l]) - 3while half >= 0:if half >= 0:print(' ' * ((len(ls) - len(ls[half])) // 2) + ls[half])half -= 2else:break
graph6_2()
运行结果:
代码7的变化:
#绘制字符沙漏
def graph7_2():sign = ''string = str(input('请输入语句:'))N = len(string)ls = []#N = int(input('设置字符漏口最大长度:'))for i in range(0, N):sign += string[i]ls.append(sign)# print(string)ls_reverse = ls[::-1]print('graph7的result:')for l in range(0,len(ls_reverse),2):print(' ' * ((len(ls_reverse)-len(ls_reverse[l]))//2)+ls_reverse[l])if N % 2 == 0:for e in range(3,len(ls),2):print(' ' * ((len(ls) - len(ls[e]))//2)+ls[e])else:if N % 2 != 0:for e in range(2, len(ls), 2):print(' ' * ((len(ls) - len(ls[e])) // 2) + ls[e])
graph7_2()
运行结果如下:
接下来,我觉得还可以打开文件,随机选择里面的语句生成图形。关于这个txt文件参见我之前的文章。地址是:python入门到放弃篇35。
文件内容如下:
代码8:
def graph8():ls = []ls2 = []sign = ''with open(r'D:/pycharm_project/waiting_for_love.txt','r+',encoding='utf-8') as f:lines = f.readlines()for l in lines:line = l.strip()ls.append(line)string = random.choice(ls)N = len(string)# N = int(input('设置字符漏口最大长度:'))for i in range(0, N):sign += string[i]ls2.append(sign)# print(string)ls_reverse = ls2[::-1]print('graph8的result:')for l in range(0, len(ls_reverse), 2):print(' ' * ((len(ls_reverse) - len(ls_reverse[l])) // 2) + ls_reverse[l])if N % 2 == 0:for e in range(3, len(ls2), 2):print(' ' * ((len(ls2) - len(ls2[e])) // 2) + ls2[e])else:if N % 2 != 0:for e in range(2, len(ls2), 2):print(' ' * ((len(ls2) - len(ls2[e])) // 2) + ls2[e])
graph8()
运行结果如下:
代码9:
def graph9():sign = ''ls = []ls2 = []with open(r'D:/pycharm_project/waiting_for_love.txt','r+',encoding='utf-8') as f:lines = f.readlines()for l in lines:line = l.strip()ls.append(line)string = random.choice(ls)# N = int(input('设置字符漏口最大长度:'))N = len(string)for i in range(0, len(string)):sign += string[i]ls2.append(sign)# print(string)print('graph6的result:')for l in range(0, len(ls2), 2):print(' ' * ((len(ls2) - len(ls2[l])) // 2) + ls2[l])if len(ls2[l]) == N or len(ls2[l]) == N - 1:half = len(ls2[l]) - 3while half >= 0:if half >= 0:print(' ' * ((len(ls2) - len(ls2[half])) // 2) + ls2[half])half -= 2else:break
graph9()
运行结果如下:
最后,感谢大家前来观看鄙人的文章,文中或有诸多不妥之处,还望指出和海涵。当然,对我的程序有疑问的朋友,也可以跟我私聊探讨,看是否能够再进一步改进,期待你的建议。
python入门到放弃篇46绘制几何图形相关推荐
- python入门到放弃恶搞图-《Python3从入门到放弃》视频教程
<Python3从入门到放弃>视频教程2016年 001.01.python编程环境配置 001.02.IDE的又一选择PyCharm 002.01.name 002.02.namespa ...
- python入门到放弃恶搞图-学Python方法用错,直接从入门到放弃!
原标题:学Python方法用错,直接从入门到放弃! 从你开始学习编程的那一刻起,就注定了以后所要走的路-从编程学习者开始,依次经历实习生.程序员.软件工程师.架构师.CTO等职位的磨砺:当你站在职位顶 ...
- python生日祝福短信_python从入门到放弃篇5(tkinter模块)实现生日快乐祝福
#从我开始学习python编程到现在也就4个月的时间,我感觉还是很不错的,我在挣扎,在坚持.因此,请不要放弃治疗. #今天太忙了,搞作业.没时间更新打奖程序了,明天再想办法看看.今天先出新东西,用tk ...
- python从入门到放弃篇31(selenium库)模拟天猫登录输入不含验证码,初步实现
今天把之前两天的文章补上再说.这两天在研究模拟登录.暂时还没有进展,但是我相信会好起来的. 我之前有一篇博文,是说爬取天猫图书信息的,我是在爬了一页后,也就是60本书后,遇到一个问题,就是碰到天猫要求 ...
- python从入门到放弃篇26(lxml.etree库,urllib.request库,构造xpath路径,构造url)实现翻页爬取豆瓣书简介并保存数据
今天,我研究了构造url和xpath路径的方法实现翻页爬取数据.觉得还可以,不过还是存在一些问题,没有我想的那么理想,因为,目前只实现了爬取每一页的第一本书及其书评.我等有时间会再去研究. 第一步,我 ...
- python从入门到放弃篇29(selenium库)for循环爬取名人名言动态网页并保存数据到本地计算机上
今天,又是个美好的一天,我因为开始自学爬虫,所以就顺便看看爬虫重修群的作业(当然我没有挂科),我觉得这次作业还有一些意思,所以,我自己就解决了这次作业. 完整代码其实也就20多行左右: 我们这次的案例 ...
- python soup歌词_python从入门到放弃篇35(BeautifulSoup库)爬取A神waiting for love歌词
今天,在研究BeautifulSoup库的使用方法和技巧,我看了一下BeautifulSoup库函数,觉得BeautifulSoup库没有lxml库的xpath函数那么好用,各有优势吧. 案例网址:h ...
- python从入门到放弃篇40(selenium库,lxml库,requests库,time库,构造url)爬取列表中的象棋视频
今天先把昨天的发文补上再说,昨天在搞Flask框架搭建,并且尝试批量爬取视频,遇到了一些坑,跟大家分享一下. 这次我们案例的网址是: https://haokan.baidu.com/v?vid=13 ...
- 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity
问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...
最新文章
- “环太平洋”走进现实,五角大楼研发人与武器互动的意念控制技术
- RuntimeError: get_active_profile() can only be called between a start() and a following stop()
- 数学,原来可以这么美!
- MySQL instr()函数
- 7名高管、半数员工离职,如何再造乔布斯重返苹果神话?
- 一些看起来有用但没用过的函数
- android otg读取索尼相机usb_索尼新概念!即将上市全画幅无反相机α7C先睹为快
- 并发入库面临重复数据的问题
- Linux虚拟文件系统(概述)
- 2022最新版影视小程序源码支持josn官解+卡密系统
- Iphone8如何投屏到电脑 苹果手机投屏到电脑
- 修改阿拉伯语等语言下的数字显示
- Android 微信支付宝授权获取用户信息
- java 网格包,一个网格包的问题
- 【秒懂】数据分析没头绪?这七种高手常用统计分析方法都帮你总结好了!
- Flutter Sliver大家族之SliverList(),SliverFixedExtentList(),SliverGrid()组件②
- 仙境传说服务器各文件夹,仙境传说RO游戏背景及快捷键等基础常识大全 指令大全 指令使用-游侠网...
- 推荐8款插件,浏览器使用体验上升500%
- Python利用meteinfo来计算后向轨迹
- 天问block-STC8G1K08A-LED
热门文章
- 软件测试转行做软件销售,转行做软件测试2年了,终于实现收入过万的梦想
- windows vc2017 环境安装pycrypto 出错解决
- 图像分割:基于阈值(Otsu)
- html中marquee标签添加2条,HTML marquee标签
- 不得不说,这是我面过的最优秀的Linux运维!
- 计算机应用电子表格题,计算机应用基础Ecel电子表格题目.doc
- 学习《码农翻身》之精进
- 使用ssh连接Linux服务器反应慢,配置DNS的问题
- excel单元格内容拆分_Excel表格技巧—如何统计有内容的单元格数量
- 提取.c文件中的函数名