Кратко:
1) Шарп – строго типизированный элегантный с-образный язык, предназначенный для объектно-ориентированного программирования. Не в рамках этого боя, но чтобы было понятно мое мировоззрение, скажу, что, на мой взгляд, С++ не столь элегантно, как Java или С# выглядит через призму объектно-ориентированного подхода.
2) Пайтон – язык с динамической типизацией и кучей удобных фишек.
На пайтоне цель зачастую достигается за меньшее количество букв, чем на C#.
Пример1. получение серии целых из строки ввода.
Console.Write("Input series of numbers: ");
string s=Console.ReadLine();
string[] token = s.Split();
inp = Array.ConvertAll(token, int.Parse);
аналогично:
print("Input series of numbers: ")
inp=list(map(int,input().split()))
Пример2. Вычисление одинаковых (с первым) элементов в массиве
int cnt = myarr.Count(p => p == myarr[0]);
аналогично
myarr.count(myarr [0])
далее
Хотя пайтон язык интерпретируемый, делать на нем отладку намного геморнее, чем на C#, языке компилируемом. Нельзя во время выполнения программы поменять код пайтона и продолжить выполнение программы дальше. На C# можно. По аналогии с VB (интерпретатор) я ожидал, что на пайтоне все будет удобнее, чем на C#, но был не прав.
Пока мое мнение таково, что для групповой разработки крупных проектов C# предпочтительнее пайтона.
Для спортивного программирования пайтон подходит лучше, чем C#
Можно писать и дальше, но пока хватит, хотелось бы узнать ваше мнение.
Буду благодарен, если аргументировано подправите мое мировоззрение.