Detailed discussion based on Python3 comma code and character graph grid of
- 2020-06-03 07:19:11
- OfStack
The comma code
Suppose you have the following list:
spam=['apples','bananas','tofu',' cats']
Write a function that takes a list value as an argument and returns a string. The string contains all table entries, separated by commas and Spaces, and inserts and before the last one. For example, the preceding spam list passed to a function, returns' apples, bananas tofu, and cats '. But your function should be able to pass to any list it has.
The code is as follows:
import copy
def conFun(nameList):
n=len(nameList)
newList=copy.copy(nameList)
newList.insert(n-1,'and')
# print(newList)
a=str(newList.pop())
b=str(newList.pop())
c=''
c=b+' '+a
newOne=''
newOne=newList[0]
i=1
for j in newList:
newOne=newOne+','+newList[i]
i=i+1
if i==len(newList):
break
print(newOne+','+c)
Verification code:
================== RESTART: /Users/valen/Documents/test.py ==================
>>> spam=['apple','bananas','tofu','cats']
>>> conFun(spam)
apple,bananas,tofu,and cats
>>>
Character graph grid
Suppose there is a list of lists, and each value of the inner list is a 1-character string, like this:
grid = [ ['.', '.', '.', '.', '.','.'],
['.', '0', '0', '.', '.','.'],
['0', '0', '0', '0', '.','.'],
['0', '0', '0', '0', '0','.'],
['.', '0', '0', '0', '0','0'],
['0', '0', '0', '0', '0','.'],
['0', '0', '0', '0', '.','.'],
['.', '0', '0', '.', '.','.'],
['.', '.', '.', '.', '.','.']]
You can think of grid[x][y] as the character of 1 "graph" at the x,y coordinates. The graph consists of text characters. At the origin (0,0) in the upper left corner, the x coordinates increase to the right, and the y coordinates increase to the downward.
Copy the previous grid value and write code to print the image using it.
..OO.OO..
.OOOOOOO.
.OOOOOOO.
..OOOOO..
...OOO...
....O....
Tip: You need to use nested loops, print out grid[0][0], then grid[1][0], then grid[2][1], and so on, until grid[8][0]. This completes line 1, so the next step is to print a newline. The program will then print grid[0][1], then grid[1][1], then grid[2][1], and so on. The program will print grid[8][5] at the end.
Also, if you don't want to automatically print line breaks after every call to print(), remember to pass the end keyword argument to print().
import copy
grid = [ ['.', '.', '.', '.', '.','.'],
['.', '0', '0', '.', '.','.'],
['0', '0', '0', '0', '.','.'],
['0', '0', '0', '0', '0','.'],
['.', '0', '0', '0', '0','0'],
['0', '0', '0', '0', '0','.'],
['0', '0', '0', '0', '.','.'],
['.', '0', '0', '.', '.','.'],
['.', '.', '.', '.', '.','.']]
c=[]
c=copy.deepcopy(grid)
#print(c)
gridLen=len(grid)
cyctime=len(grid[0])
#print(cyctime)
i=0
j=0
for j in range(cyctime):
if j < cyctime :
for i in range(gridLen):
if i < gridLen :
print(c[i][j],end=' ')
i=i+1
print('\n')
j=j+1
The output is as follows:
================== RESTART: /Users/valen/Documents/test.py ==================
. . 0 0 . 0 0 . .
. 0 0 0 0 0 0 0 .
. 0 0 0 0 0 0 0 .
. . 0 0 0 0 0 . .
. . . 0 0 0 . . .
. . . . 0 . . . .
>>>