鱼C论坛

 找回密码
 立即注册
查看: 1708|回复: 12

[已解决]请教一个简单的问题

[复制链接]
发表于 2017-4-4 17:13:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
公选课python的作业
编写打印如图的程序:

                               
登录/注册后可看大图
最佳答案
2017-4-4 19:20:22
本帖最后由 冬雪雪冬 于 2017-4-4 19:22 编辑

用for循环做一个。
  1. for i in range(6):
  2.     str1 = ''.join([chr(65 + j) for j in range(i + 1)])
  3.     str1 = str1[:0:-1] + str1
  4.     print(str1.center(11))
复制代码


[
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-4-4 17:13:47 | 显示全部楼层
感觉很简单,但刚刚开始学做不出来啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-4 17:43:24 | 显示全部楼层
看不到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-4 18:03:09 | 显示全部楼层

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-4 18:03:46 | 显示全部楼层

换了一个图床,应该能看到了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-4 18:32:42 | 显示全部楼层
  1. print('     A     \n    BAB    \n   CBABC   \n  DCBABCD  \n EDCBABCDE \nFEDCBABCDEF')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-4-4 19:05:02 | 显示全部楼层
  1. #coding=cp936
  2. str1='ABCDEF'
  3. str2='A'
  4. #设置两个字符串,str2为初始字符'A',str1为要添加的字符
  5. result_array=[]
  6. for i in str1:
  7.         n=str1.index(i)
  8.         if n==0:
  9.                 str2='A'
  10.                 #如果是第一个字符就不用拼接了
  11.         else:
  12.                 for j in range(1,n+1):
  13.                         str2=str1[j]+str2+str1[j]
  14.                        #否则把字符两边拼接,然后取后一个字符
  15.         result_array.append(str2)
  16.         str2='A'
  17.         #把拼接好的str2塞入结果数组result_array中,同时为了不影响下一次的拼接,将str2重置为A

  18. for i in result_array:
  19.         print i.center(len(result_array[len(result_array)-1]))
  20. #开始将result_array中每一个字符串打印,利用center方法将字符串居中打印,每行长度以最长字符串长度为基准,即array_result最后一个元素长度
  21.         
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-4 19:20:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 冬雪雪冬 于 2017-4-4 19:22 编辑

用for循环做一个。
  1. for i in range(6):
  2.     str1 = ''.join([chr(65 + j) for j in range(i + 1)])
  3.     str1 = str1[:0:-1] + str1
  4.     print(str1.center(11))
复制代码


[
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-4 22:42:28 | 显示全部楼层
  1. >>> ls=[' ']*11
  2. >>> for i in range(6):
  3.         ls[5+i]=chr(65+i)
  4.         ls[5-i]=chr(65+i)
  5.         print(''.join(ls))

  6.        
  7.      A     
  8.     BAB   
  9.    CBABC   
  10.   DCBABCD  
  11. EDCBABCDE
  12. FEDCBABCDEF
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-4-5 01:13:06 | 显示全部楼层
冬雪雪冬 发表于 2017-4-4 19:20
用for循环做一个。

厉害了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-5 09:42:16 | 显示全部楼层
冬雪雪冬 发表于 2017-4-4 19:20
用for循环做一个。

你好,请教一下,[:0:-1]这个的作用是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-5 10:03:55 | 显示全部楼层
sunnychou 发表于 2017-4-5 09:42
你好,请教一下,[:0:-1]这个的作用是什么

从最后一个到正数第二个的字符串逆向取值。

  1. >>> s = 'abcde'
  2. >>> s[:0:-1]
  3. 'edcb
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-5 10:28:17 | 显示全部楼层
冬雪雪冬 发表于 2017-4-5 10:03
从最后一个到正数第二个的字符串逆向取值。


非常感谢你,明白了,很清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 20:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表