|
|
Line 1: |
Line 1: |
− | == Regarding the Revision of The Page: Kelas Metoda Numerik 02 Sem. Gasal 2020/21 ==
| |
| | | |
− | I recently edited the following page : [[Kelas Metoda Numerik 02 Sem. Gasal 2020/21]]
| |
− |
| |
− | '''What I changed:''' converted the simple unordered list of [Nama] into an alphabetized sortable table of [Foto | NPM | Nama]
| |
− |
| |
− | I uploaded the following image to use as a placeholder asset for the photo: [[File:Blankprofile.png|40x40px]]
| |
− |
| |
− | The names and their respective links remain unchanged. ''However, the NPM codes and photos have to be changed separately and manually''.
| |
− |
| |
− | I used a variation of the following Python code to transform the Wiki markup text into the current format.
| |
− |
| |
− | <syntaxhighlight lang="python3">
| |
− | # Python code that transforms a Wiki markup text [single unordered list]
| |
− | # into an alphabetized Wiki markup text [sortable table]
| |
− | # Christopher S.E.
| |
− | # November 2020
| |
− |
| |
− | def students_list():
| |
− | """Original Wiki markup text representing list of students, formatted as a string"""
| |
− | students = """*[[Calvin rahmat pratama]]
| |
− | *[[Abraham Mahendiartha Putra]]
| |
− | *[[Muhammad Rasyaad Dzaky]]
| |
− | *[[Reza Adyanto]]
| |
− | *[[Ethanael Hanusa]]
| |
− | *[[Fashal Firdaus Amarullah]]
| |
− | *[[John Patrick Anhar]]
| |
− | *[[Revaldy Putra Agatha]]
| |
− | *[[John Audrick]]
| |
− | *[[Oka Widiantara Suputra]]
| |
− | *[[Tri Aji Setyawan]]
| |
− | *[[JosiahEnrico]]
| |
− | *[[Cornelia Christiani Vianney]]
| |
− | *[[Moh Khairul Imam Assidiqqi]]
| |
− | *[[Hikaru Trinita Salsabila]]
| |
− | *[[Yogi Gunawan Atmawijaya]]
| |
− | *[[Faizal Rikaz Al Muntaqo]]
| |
− | *[[Fakhri Hawari Muhammad]]
| |
− | *[[Iman Herlana]]
| |
− | *[[Muhammad Faja Taufiqurrahman]]
| |
− | *[[Muhammad Helmy Yusuf]]
| |
− | *[[Rai Zulfikar Satriagama]]
| |
− | *[[Diyas Prawara Mahdi]]
| |
− | *[[Muhammad Fadhil Zuhdi]]
| |
− | *[[Diagy Alwan Irsyad]]
| |
− | *[[Tedi Veradino]]
| |
− | *[[Alvi Arya Ramadhan]]
| |
− | *[[Rezky Alfian Fatra]]
| |
− | *[[Umar]]
| |
− | *[[Norman Febrianto]]
| |
− | *[[Christopher Salendu Erwin]]
| |
− | *[[Musyafi Albar]]
| |
− | *[[Richardo Ariyanto]]
| |
− | *[[Eduardo Christ Soloman]]
| |
− | *[[M. Raja]]
| |
− | *[[Muhammad Hasfi Rizki Nur]]
| |
− | *[[Ardiya Prajna Hardianto]]
| |
− | *[[Farissthira Sahasrabhanu]]"""
| |
− | return students
| |
− |
| |
− |
| |
− | def listparser(stringlist):
| |
− | """Parses through string to find names, and outputs names as a python list"""
| |
− | parsedlist = []
| |
− | name = ""
| |
− | i = 0 # i represents the character pointer
| |
− | while i < len(stringlist):
| |
− | char = stringlist[i]
| |
− | if char in ('*', '[', ']', ' ', '\n'):
| |
− | pass
| |
− | else:
| |
− | while True:
| |
− | char = stringlist[i]
| |
− | if char == ']':
| |
− | parsedlist.append(name)
| |
− | name = ""
| |
− | break
| |
− | else:
| |
− | name = name + char
| |
− | i += 1
| |
− | i += 1
| |
− | return parsedlist
| |
− |
| |
− |
| |
− | def table_format(studentlist):
| |
− | """Sorts the python list alphabetically and prints out a string
| |
− | representing Wiki markup text for a sortable table"""
| |
− | studentlist.sort()
| |
− |
| |
− | # Wiki markup text for beginning and end of table
| |
− | top = """{| class=\"wikitable sortable\"
| |
− | |-
| |
− | ! No !! Photo !! NPM !! Name
| |
− | |-"""
| |
− | bottom = "|}"
| |
− |
| |
− | # Prints out the table containing the names within the student list
| |
− | print(top)
| |
− | for student in studentlist:
| |
− | i = studentlist.index(student) + 1
| |
− | print(f"| {i} || [[File:Blankprofile.png|100x100px]] || 0000000000 || [[{student}]]")
| |
− | print("|-")
| |
− | print(bottom)
| |
− |
| |
− |
| |
− | def menu():
| |
− | """Main sequence of the program"""
| |
− | studentstring = students_list()
| |
− | studentlist = listparser(studentstring)
| |
− | print(studentlist)
| |
− | print()
| |
− | table_format(studentlist)
| |
− |
| |
− |
| |
− | if __name__ == '__main__':
| |
− | menu()
| |
− |
| |
− | </syntaxhighlight>
| |