大佬们教教我
写一个Python程序输出如下结果:what is your first name:dennis
what is your last name:liu
Enter a symbol:*
*
*e
*e*
*e*n
*e*n*
*e*n*s
*e*n*s
*e*n*s l
*e*n*s l*
*e*n*s l*u
*e*n*s l*
*e*n*s l
*e*n*s
*e*n*s
*e*n*
*e*n
*e*
*e
*
我想着要用循环可是不知道怎么整 这个排列实在排不出。 这里提供一个思路:
1、定义函数,把列表(或字符串)的字符逐个打印。
def slistprint(s_list,n):
#s_list 是列表,n是打印到第几个为止
result = ''
for each in s_list:
if each > n
break
else:
result += each
print(result)
2、定义一个字符串,或者字符列表s_list:*e*n*s l*u(最长的那段)
3、构建循环,循环次数就是len(s_list)*2-1次
4、循环内再设置判断,计数器i <= len(s_list)时,传入函数的n = i,否则n = len(s_list)*2 - i
5、循环内均调用函数,把字符列表或者字符串,以及n传入
fname = input('what is your first name:')
lname = input('what is your last name:')
symbol = input('Enter a symbol: ')
list1 =
list1 +=
length = len(list1)
for i in range(length + 1):
print(''.join(list1[:i]))
for i in range(length - 1, 0 , -1):
print(''.join(list1[:i])) firstName=input('what is your first name:')
lastName=input('what is your last name:')
symbol=input('Enter a symbol:')
fullName=firstName+' '+lastName
pList=list()
for i in range(len(fullName)):
if i==0:
pList.append(symbol)
elif fullName==' ':
pList.append(pList[-1]+' ')
elif i%2:
pList.append(pList[-1]+fullName)
else:
pList.append(pList[-1]+symbol)
reverseList=pList.copy()
reverseList.pop()
reverseList.reverse()
pList.extend(reverseList)
for i in pList:
print(i)
fname = input('what is your first name:')
lname = input('what is your last name:')
symbol = input('Enter a symbol: ')
s = symbol.join(fname) + symbol.join(lname[::2])# 构建字符串 e*n*sl*u
# 正序切片取一遍
for i in range(len(s) + 1):
print(symbol + s[:i])
# 逆序切片取一遍
for j in range(len(s) - 1, -1, -1):
print(symbol + s[:j]) zhaosiyu29 发表于 2020-10-28 21:52
请问一下这个第三个elif i%2 这个条件是什么意思? 英俊男孩建坤 发表于 2020-11-5 02:05
请问一下这个第三个elif i%2 这个条件是什么意思?
fullName是将First Name和Last Name拼接后的结果。
需要最终显示的效果是在fullName中将一个字符显示原先的内容,接下来一个字符显示预定义的符号,如'*'。
所以这里就判断每个字符的index是奇数还是偶数,i%2表示index被2取余后的结果。如果为1,表示index为奇数,则直接显示原字符,否则就显示'*'。
因为事例中遇到空格会直接显示,所以在这个之前对空格也进行了一次判断。 zhaosiyu29 发表于 2020-11-6 14:25
fullName是将First Name和Last Name拼接后的结果。
需要最终显示的效果是在fullName中将一个字符显示原 ...
为啥不写成elif i%2 == 的形式??? 英俊男孩建坤 发表于 2020-11-11 00:01
为啥不写成elif i%2 == 的形式???
因为if i%2等同于if i%2 == 1
任何一个整数被2取余的时候都是两种结果,0或者1。0的话相当关于False,非0的话都是True。
所以直接用i%2作为判断条件跟if i%2 == 1的效果一样。
页:
[1]