@maximsum
Я это я

Как преобразовать код из js в python?

У меня есть код js
function onOpen() {
    var ui = SpreadsheetApp.getUi();
    ui.createMenu('������')
        .addItem('������� ����-�����', 'myFunction')
        .addToUi(); 
  }
  
  function myFunction1(tema, form, dataArray) {
    
    //var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("������ 3");
    //var rows = sheet.getLastRow();
    //if (rows<2) {rows=2}
    //var cols = sheet.getLastColumn(); 
    //var dataArray = sheet.getRange(2, 1, rows, cols).getValues();
  
    //var sheet_log=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("log");
    //sheet_log.clearContents();
    //var row_log=sheet_log.getLastRow();
    //var sled_log=row_log+1; 
  
    var gr = [];
    for (var i = 0; i < dataArray.length; i++) {
    if(dataArray[i][2]!=="") {
      var naiden_gr=0;
      for(var l=0; l<gr.length; l++) {
        if (dataArray[i][2]==gr[l]) {
          naiden_gr=1;
        }
      }    
      if (naiden_gr==0) {
        gr.push(dataArray[i][2]);
      }  
      }
      }
  
    var gr1 = [];
    for (var i = 0; i < dataArray.length; i++) {
    if(dataArray[i][6]!=="") {
      var naiden_gr=0;
      for(var l=0; l<gr1.length; l++) {
        if (dataArray[i][6]==gr1[l]) {
          naiden_gr=1;
        }
      }    
      if (naiden_gr==0) {
        gr1.push(dataArray[i][6]);
      }  
      }
      }
  
    var gr2 = [];
    for (var i = 0; i < dataArray.length; i++) {
    if(dataArray[i][1]!=="") {
      var naiden_gr=0;
      for(var l=0; l<gr2.length; l++) {
        if (dataArray[i][1]==gr2[l]) {
          naiden_gr=1;
        }
      }    
      if (naiden_gr==0) {
        gr2.push(dataArray[i][1]);
      }  
      }
      } 
  
     // var d = Utilities.formatDate(new Date(), "Europe/Moscow", 'dd.MM.yyyy HH:mm:ss');
  
   for(var l1=0; l1<gr1.length; l1++) {
    if (gr1[l1]==tema) {
    //var form = FormApp.create("����� ����: "+gr1[l1]+" ����: "+d);
    //form.setTitle("����� ����: "+gr1[l1]);
    //form.setIsQuiz(true);
    //form.setCollectEmail(true);
    //form.setPublishingSummary(true);
    
    //             sheet_log.getRange(sled_log, 1).setValue(form.getEditUrl());                
    //             sled_log=sled_log+1;  
                 
            
     for(var l2=0; l2<gr2.length; l2++) {
  
       var title="";
       var tip="";
       
       var co=[];
       var zag1="";
       var zag2="";     
       for(var i=0; i<dataArray.length; i++) {   
       if(dataArray[i][6]==gr1[l1] && dataArray[i][1]==gr2[l2]) {
         if(dataArray[i][0]*1==1) {
           //arr.push(dataArray[i][3]);
           title=dataArray[i][3];
           tip=dataArray[i][1]*1;
         }
         if(dataArray[i][0]*1==5) {
           co.push(""+dataArray[i][4] +") "+ dataArray[i][3]);
         }  
         if(dataArray[i][0]*1==2) {
           zag1=dataArray[i][3];
         }   
         if(dataArray[i][0]*1==4) {
           zag2=dataArray[i][3];
         }                     
       }
       }
       
       if (title!=="" && tip>0) {
  
       for(var l=0; l<gr.length; l++) { 
  
              var ro=[];
              var otv="";
              var t=title+"\n\n"+zag1+"\n\n";
              
                for(var i=0; i<dataArray.length; i++) { 
                  if(dataArray[i][6]==gr1[l1] && dataArray[i][1]==gr2[l2] && dataArray[i][2]==gr[l]) {
                    ro.push(dataArray[i][3]);
                    t=t+dataArray[i][4]+") "+dataArray[i][3]+"\n";
                    otv=otv+dataArray[i][5].toString().trim();
                  }
                }
  
                
                if (ro.length>0) {
                  
                var item=form.addParagraphTextItem();
                t=t+"\n"+zag2+"\n\n";
  
                if (co.length>0) {
                  for(var i7=0; i7<co.length; i7++) { 
                    t=t+co[i7]+"\n"
                  }
                }
  
                item.setTitle(t);
                item.setRequired(true);
                
                if (otv!=="") {
                var v = FormApp.createParagraphTextValidation().requireTextMatchesPattern(otv).build();
                item.setValidation(v);
                
                
                }
                
    
  
                }
  
       }         
       }
  
  
     }
   }
   }   
  }
  
  function myFunction() {
  
    var sheet7 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("������ 3");
    var rows7 = sheet7.getLastRow();
    if (rows7<2) {rows7=2}
    var cols7 = sheet7.getLastColumn(); 
    var dataArray7 = sheet7.getRange(2, 1, rows7, cols7).getValues();
  
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("������� 2 � 4");
    var rows = sheet.getLastRow();
    if (rows<2) {rows=2}
    var cols = sheet.getLastColumn(); 
    var dataArray = sheet.getRange(2, 1, rows, cols).getValues();
    //var dataArray = sheet.getRange(94, 1, 6, cols).getValues();
    
     var sheet_log=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("log");
     sheet_log.clearContents();
    var row_log=sheet_log.getLastRow();
    var sled_log=row_log+1;
  
   var gr = [];
    for (var i = 0; i < dataArray.length; i++) {
    if(dataArray[i][2]!=="") {
      var naiden_gr=0;
      for(var l=0; l<gr.length; l++) {
        if (dataArray[i][2]==gr[l]) {
          naiden_gr=1;
        }
      }    
      if (naiden_gr==0) {
        gr.push(dataArray[i][2]);
      }  
      }
      }
    
  
    var gr1 = [];
    for (var i = 0; i < dataArray.length; i++) {
    if(dataArray[i][4]!=="") {
      var naiden_gr=0;
      for(var l=0; l<gr1.length; l++) {
        if (dataArray[i][4]==gr1[l]) {
          naiden_gr=1;
        }
      }    
      if (naiden_gr==0) {
        gr1.push(dataArray[i][4]);
      }  
      }
      }
  
  
    var gr2 = [];
    for (var i = 0; i < dataArray.length; i++) {
    if(dataArray[i][5]!=="") {
      var naiden_gr=0;
      for(var l=0; l<gr2.length; l++) {
        if (dataArray[i][5]==gr2[l]) {
          naiden_gr=1;
        }
      }    
      if (naiden_gr==0) {
        gr2.push(dataArray[i][5]);
      }  
      }
      }
  
  var d = Utilities.formatDate(new Date(), "Europe/Moscow", 'dd.MM.yyyy HH:mm:ss');
  
  
  for(var l1=0; l1<gr1.length; l1++) {
    
    var form = FormApp.create("����� ����: "+gr1[l1]+" ����: "+d);
    form.setTitle("����� ����: "+gr1[l1]);
    form.setIsQuiz(true);
    form.setCollectEmail(true);
    form.setPublishingSummary(true);
    
                 sheet_log.getRange(sled_log, 1).setValue(form.getEditUrl());                
                 sled_log=sled_log+1;  
                SpreadsheetApp.flush();
  
  myFunction1(gr1[l1],form, dataArray7 );
  
  for(var l2=0; l2<gr2.length; l2++) {
  
  
  
    for(var l=0; l<gr.length; l++) { 
    var cho = [];
    var bal = [];
  var title="";
  for(var i=0; i<dataArray.length; i++) {
    if(dataArray[i][2]==gr[l] && dataArray[i][4]==gr1[l1] && dataArray[i][5]==gr2[l2] ) {
      if(dataArray[i][0]!=="" && (dataArray[i][1]=="�" || dataArray[i][1]=="x") ) {
        title=dataArray[i][0];
      }  
      else if(dataArray[i][0]!=="" && dataArray[i][1]!=="�" && dataArray[i][1]!=="x") {
        cho.push(dataArray[i][0]);
        bal.push(dataArray[i][1]*1);
      }     
    }
  }
  
  if (title!=="") {
   var item = form.addCheckboxItem(); //addMultipleChoiceItem();
   item.setTitle(title);
   item.setPoints(1);
   item.setRequired(true);
   if (cho.length>0) {
    var arr=[];
    var b=0;
    try {
     for(var i7=0; i7<cho.length; i7++) {
     
     if (bal[i7]>0) {
     b=b+1;
     arr.push( item.createChoice(cho[i7], true) );
     }
     else {
     arr.push( item.createChoice(cho[i7], false) );
     }
     item.setChoices(arr);
      if (b>0) {
      //item.setPoints(b);
      }  
    //item.setChoiceValues(cho);
    
    } 
  
    }
    catch (err) {
                 sheet_log.getRange(sled_log, 2).setValue(err);                
                 sled_log=sled_log+1;
  
    }
   }
  }
    
    }
  
  }
  
  
    
  
  
  }
  
  }

как мне его преобразовать в python код?
  • Вопрос задан
  • 337 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Изучить оба языка, проанализировать js-код, вычленить алгоритм, реализовать его на Python.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы