You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/p__Terminal__.4ddf15f8.asyn...

162 lines
33 KiB

(window.webpackJsonp=window.webpackJsonp||[]).push([[221],{"07cG":function(J,a,e){J.exports={ldsRing:"ldsRing___2F8W7",idsRingWrapper:"idsRingWrapper___fC2cF",ldsring:"ldsring___3A88y"}},AKST:function(J,a,e){},Dqnf:function(J,a,e){"use strict";var s=e("XEnU"),v=e("k16G"),X=e("Cmcn"),E=e("q1tI"),L=e.n(E),j=e("J66h"),g=e.n(j),S=e("/POA"),U=e.n(S),f=e("q7KB"),se=e.n(f),l=e("dhSg"),d=e("bdgK");function o(y,_,D){var I=D._core._renderService.dimensions.actualCellWidth||9.5,p=D._core._renderService.dimensions.actualCellHeight||18,c=Math.floor(_/p),h=Math.floor(y/I);return[h,c]}function $(y,_){var D=new d.a(function(I){var p=Object(X.a)(I),c;try{for(p.s();!(c=p.n()).done;){var h=c.value;if(h.target.offsetHeight>0||h.target.offsetWidth>0){var C=o(h.target.offsetWidth,h.target.offsetHeight,y),B=Object(v.a)(C,2),N=B[0],b=B[1];console.log("cols, rows",N,b),y.resize(N,b),l.a.publish("ssh-xterm-resize",{columns:N,rows:b,width:h.target.offsetWidth,height:h.target.offsetHeight})}}}catch(i){p.e(i)}finally{p.f()}});return D.observe(_),D}var ue=3e4;a.a=function(y){var _=y.sshConfigData,D=y.sid,I=Object(E.useState)(null),p=Object(v.a)(I,2),c=p[0],h=p[1],C=_.ws_url,B=_.password,N=_.port,b=Object(E.useRef)(),i=Object(E.useRef)(),G=Object(E.useRef)(!1);return Object(E.useEffect)(function(){if(b.current&&C){var A=new S.Terminal({fontSize:16,rendererType:"dom"});A.open(b.current),A.onData(function(Q){i.current&&(i.current.readyState===1&&(i.current.send(JSON.stringify({tp:"client",data:Q})),l.a.publish("on-operating-ssh")))}),A.write("Connecting..."),h(A);var Z=$(A,b.current);return function(){A.dispose(),Z.unobserve(b.current)}}},[C,b.current]),Object(E.useEffect)(function(){if(c&&C){var A=function(){var n=new WebSocket(C);i.current=n,n.onopen=function(){var t=c.element.parentElement;if(t){var W=t.offsetWidth,F=t.offsetHeight;console.log("init",{tp:"init",data:Object(s.a)(Object(s.a)({},_),{},{secret:B,width:W,height:F,rows:c.rows,columns:c.cols})}),n.send(JSON.stringify({tp:"init",data:Object(s.a)(Object(s.a)({},_),{},{secret:B,width:W,height:F,rows:c.rows,columns:c.cols})}))}c.focus()},n.onerror=function(t){console.log("------in socket error----",t,n,C)},n.onmessage=function(t){G.current||(c.write("\r"),setTimeout(function(){},1e3)),G.current=!0,console.log("event:",t);var W=j.Base64.decode(t.data.toString()),F=c._core._renderService.dimensions.actualCellWidth||9.5;console.log("data:",W,F,c),c.write(W)},n.onclose=function(t){Z&&clearInterval(Z),c.write(`\r
connection closed`)}},Z=setInterval(function(){i.current&&i.current.send(JSON.stringify({tp:"h"}))},ue),Q=l.a.subscribe("create-socket",function(w){D===w&&(i.current&&i.current.readyState===1?c.focus():A(),c.focus())}),P=l.a.subscribe("close-socket",function(w){D===w&&(i.current&&(i.current.close(),G.current=!1,c.clear()),i.current=null)}),me=l.a.subscribe("ssh-xterm-resize",function(w){i.current&&i.current.readyState===1&&i.current.send(JSON.stringify({tp:"resize",data:Object(s.a)({},w)}))}),oe=l.a.subscribe("ssh-add-connect-time",function(){i.current&&i.current.readyState===1&&i.current.send(JSON.stringify({tp:"overtime"}))});return function(){P(),Q(),me(),oe(),i.current&&(i.current.close(),G.current=!1)}}},[c,C,N]),L.a.createElement("div",{ref:b,className:"xterm-panel"},C?null:L.a.createElement("p",{style:{color:"#fff"}},"\u6B63\u5728\u8FDE\u63A5\u547D\u4EE4\u884C\u670D\u52A1..."))}},IZBM:function(J,a,e){"use strict";e.d(a,"l",function(){return v}),e.d(a,"m",function(){return X}),e.d(a,"i",function(){return E}),e.d(a,"D",function(){return L}),e.d(a,"h",function(){return j}),e.d(a,"G",function(){return g}),e.d(a,"C",function(){return S}),e.d(a,"x",function(){return U}),e.d(a,"z",function(){return f}),e.d(a,"f",function(){return se}),e.d(a,"q",function(){return l}),e.d(a,"g",function(){return d}),e.d(a,"j",function(){return o}),e.d(a,"v",function(){return y}),e.d(a,"k",function(){return _}),e.d(a,"t",function(){return D}),e.d(a,"u",function(){return I}),e.d(a,"d",function(){return p}),e.d(a,"A",function(){return c}),e.d(a,"B",function(){return h}),e.d(a,"y",function(){return C}),e.d(a,"F",function(){return B}),e.d(a,"n",function(){return N}),e.d(a,"o",function(){return b}),e.d(a,"p",function(){return i}),e.d(a,"s",function(){return G}),e.d(a,"E",function(){return A}),e.d(a,"b",function(){return Z}),e.d(a,"c",function(){return Q}),e.d(a,"a",function(){return P}),e.d(a,"r",function(){return me}),e.d(a,"e",function(){return oe}),e.d(a,"w",function(){return w});var s=e("ErOA");function v(n){return Object(s.c)("tasks/".concat(n,".json"))}function X(n){return Object(s.c)("myshixuns/".concat(n,"/challenges.json"))}function E(n,t){return Object(s.c)("myshixuns/".concat(n,"/subject_challenges.json"),t)}function L(n,t,W){return Object(s.c)("tasks/".concat(n,"/star.json?shixun_id=").concat(t,"&star=").concat(W))}function j(n,t){return Object(s.c)("tasks/".concat(n,"/rep_content.json"),t)}function g(n,t){return Object(s.f)("myshixuns/".concat(n,"/update_file.json"),t)}function S(n,t){return Object(s.c)("tasks/".concat(n,"/reset_original_code.json"),t)}function U(n,t){return Object(s.f)("myshixuns/".concat(n,"/reset_repository.json"),t)}function f(n,t){return Object(s.c)("tasks/".concat(n,"/reset_passed_code.json"),t)}function se(n,t){return Object(s.f)("tasks/".concat(n,"/game_build.json"),t)}function l(n,t){return Object(s.c)("tasks/".concat(n,"/game_status.json"),t)}function d(n,t){return Object(s.f)("tasks/".concat(n,"/choose_build.json"),t)}function o(n){return Object(s.c)("tasks/".concat(n,"/picture_display.json"))}function $(n,t){return Object(s.c)("tasks/".concat(n,"/cost_time.json"),t)}function ue(n,t){return Object(s.c)("courses/".concat(n,"/inform_detail.json"),t)}function y(n){return Object(s.f)("tasks/".concat(n,"/plus_or_cancel_praise.json"))}function _(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object(s.f)("myshixuns/".concat(n,"/repository.json"),t)}function D(n){return Object(s.c)("myshixuns/".concat(n,"/open_webssh.json"))}function I(n){return Object(s.c)("myshixuns/".concat(n,"/open_vm_webssh.json"))}function p(n){return Object(s.c)("tasks/".concat(n,"/close_webssh.json"))}function c(n){return Object(s.c)("tasks/".concat(n,"/reset_vnc_link.json"))}function h(n){return Object(s.f)("tasks/".concat(n,"/reset_windows_vnc_link.json"))}function C(n){return Object(s.f)("tasks/".concat(n,"/reset_linux_vnc_link.json"))}function B(n){return Object(s.c)("tasks/".concat(n,"/check_test_sets.json"))}function N(n){return Object(s.c)("tasks/".concat(n,"/get_answer_info.json"))}function b(n){return Object(s.c)("tasks/".concat(n,"/get_choose_answer.json"))}function i(n){return Object(s.c)("tasks/".concat(n,"/unlock_choose_answer.json"))}function G(n,t){return Object(s.c)("tasks/".concat(n,"/unlock_answer.json?answer_id=").concat(t))}function A(n,t,W){return Object(s.f)("tasks/".concat(n,"/set_games_status.json"),{result:t,data:W})}function Z(n){return Object(s.f)("tasks/".concat(n,"/extend_vnc.json"))}function Q(n){return Object(s.f)("tasks/".concat(n,"/extend_windows_vnc.json"))}function P(n){return Object(s.f)("tasks/".concat(n,"/extend_linux_vnc.json"))}function me(n,t){return Object(s.c)("tasks/".concat(n,"/rank_list.json"),t)}function oe(n,t){return Object(s.f)("tasks/".concat(n,"/close_windows_vnc.json"),{tpi_id:t})}function w(n){return Object(s.c)("tasks/".concat(n,"/pull_files.json"))}},IxHN:function(J,a,e){"use strict";var s=e("q1tI"),v=e.n(s),X=e("07cG"),E=e.n(X);a.a=function(L){var j=L.message,g=L.className,S=L.children,U=L.style,f=U===void 0?{}:U;return v.a.createElement("div",{className:"".concat(E.a.idsRingWrapper," ").concat(g)},v.a.createElement("div",{className:E.a.ldsRing},v.a.createElement("div",null),v.a.createElement("div",null),v.a.createElement("div",null),v.a.createElement("div",null)),j?v.a.createElement("p",{style:f},j):null,S)}},Lmeb:function(J,a,e){},M8RZ:function(J,a,e){"use strict";e.d(a,"a",function(){return U});var s=e("XKWP"),v=e("N7Kx"),X=e("kFHX"),E=e("4jIl"),L=e("q1tI"),j=e.n(L),g=e("i8i4"),S=e.n(g),U=function(f){Object(X.a)(l,f);var se=Object(E.a)(l);function l(d){var o;Object(s.a)(this,l),o=se.call(this,d);var $=window.document;return o.node=$.createElement("div"),$.body.appendChild(o.node),o}return Object(v.a)(l,[{key:"render",value:function(){var o=this.props.children;return Object(g.createPortal)(o,this.node)}},{key:"componentWillUnmount",value:function(){window.document.body.removeChild(this.node)}}]),l}(j.a.Component)},PYMJ:function(J,a,e){"use strict";e.r(a);var s=e("XEnU"),v=e("5Tp6"),X=e("k16G"),E=e("SIvP"),L=e("c1Ei"),j=e.n(L),g=e("q1tI"),S=e.n(g),U=e("9kvl"),f=e("Dqnf"),se=e("qZJd"),l=e("Lmeb"),d=e.n(l),o=e("dhSg"),$=e("ErOA"),ue=function(_){var D=_.classroomList,I=_.globalSetting,p=_.loading,c=_.dispatch,h=Object(E.a)(_,["classroomList","globalSetting","loading","dispatch"]),C=Object(g.useState)({}),B=Object(X.a)(C,2),N=B[0],b=B[1],i=Object(g.useState)({st:0,discusses_count:0,game_count:4,record_consume_time:null,prev_game:null,next_game:"cfwqv7lsi5pj",praise_count:0,user_praise:!1,time_limit:9,tomcat_url:"http://121.40.224.66",is_teacher:!0,myshixun_manager:!0,game:{id:2192586,myshixun_id:576993,user_id:1,created_at:"2021-03-16T20:38:10.000+08:00",updated_at:"2021-03-16T21:28:37.000+08:00",status:0,final_score:0,challenge_id:11829,open_time:"2021-03-16T20:38:12.000+08:00",identifier:"pcf9t4w6vrnz",answer_open:0,end_time:null,retry_status:0,resubmit_identifier:null,test_sets_view:!1,picture_path:null,accuracy:null,modify_time:"2020-07-20T15:04:34.000+08:00",star:0,cost_time:847,evaluate_count:0,answer_deduction:0,play_time:null,play_sign:0,extend_score:null,score_radio:0,exericse_evaluate_count:0,exercise_finished_at:null,homework_common_answer_open:!1},challenge:{id:11829,shixun_id:5207,subject:"\u5143\u7EC4\u4F7F\u7528\uFF1A\u8FD9\u4EFD\u83DC\u5355\u80FD\u4FEE\u6539\u5417\uFF1F",position:1,task_pass:`[TOC]
---
####\u4EFB\u52A1\u63CF\u8FF0
\u5143\u7EC4\u770B\u8D77\u6765\u72B9\u5982\u5217\u8868\uFF0C\u4F46\u5143\u7EC4\u4F7F\u7528\u5706\u62EC\u53F7\`\uFF08\uFF09\`\u800C\u4E0D\u662F\`[]\`\u6765\u6807\u8BC6\uFF0C\u800C\u4E14\u5217\u8868\u7684\u5143\u7D20\u53EF\u4EE5\u4FEE\u6539\uFF0C\u4F46\u5143\u7EC4\u7684\u5143\u7D20\u4E0D\u80FD\u4FEE\u6539\u3002\u672C\u5173\u4ECB\u7ECD\u5143\u7EC4\u7684\u5E38\u89C1\u4F7F\u7528\u65B9\u6CD5\u4EE5\u53CA\u5143\u7EC4\u548C\u5217\u8868\u7684\u4F7F\u7528\u533A\u522B\u3002\u4E0B\u9762\u7528\u996D\u5E97\u83DC\u5355\u7684\u4F8B\u5B50\u6765\u8BF4\u660E\u5217\u8868\u548C\u5143\u7EC4\u4F7F\u7528\u7684\u5E94\u7528\u573A\u666F\u3002
\u73B0\u5728\u6709\u4E00\u4E2A\u9910\u9986\u8981\u5411\u6BCF\u4E2A\u5305\u53A2\u90FD\u6295\u653E\u4E24\u4EFD\u83DC\u5355\uFF0C\u83DC\u5355\u4E0A\u67094\u79CD\u83DC\u540D\uFF0C\u6211\u4EEC\u60F3\u5C06\u4E24\u4E2A\u83DC\u5355\u4E0A\u6700\u540E\u4E00\u9053\u83DC\u540D\u4E92\u6362\u4E00\u4E0B\uFF0C\u4E5F\u60F3\u5FEB\u901F\u77E5\u9053\u6539\u53D8\u540E\u7684\u4E24\u4EFD\u83DC\u5355\u4E0A\u5355\u8BCD\u9996\u5B57\u6BCD\u6700\u5927\u7684\u83DC\u540D\u3002\u800C\u6211\u4EEC\u9996\u5148\u9700\u8981\u5224\u65AD\u8BE5\u7528\u5217\u8868\u7684\u65B9\u6CD5\u8FD8\u662F\u5143\u7EC4\u7684\u65B9\u6CD5\u5B9E\u73B0\u8FD9\u4E2A\u76EE\u6807\u3002
\u4E3A\u4E86\u5B9E\u73B0\u8FD9\u4E2A\u76EE\u6807\uFF0C\u6211\u4EEC\u9700\u8981\u5148\u5B66\u4E60\u5143\u7EC4\u7684\u76F8\u5173\u4F7F\u7528\u77E5\u8BC6\u4EE5\u53CA\u5143\u7EC4\u4E0E\u5217\u8868\u7684\u533A\u522B\u3002
####\u76F8\u5173\u77E5\u8BC6
#####\u5143\u7EC4\u4E0E\u5217\u8868
\u5143\u7EC4\u4E0E\u5217\u8868\u5F88\u76F8\u4F3C\uFF0C\u4E24\u8005\u4E4B\u95F4\u7684\u5DEE\u522B\u5728\u4E8E\uFF0C\u5217\u8868\u5728\u521D\u59CB\u5316\u540E\u5176\u4E2D\u7684\u5143\u7D20\u8FD8\u53EF\u4EE5\u8FDB\u884C\u589E\u5220\u6539\u7B49\u64CD\u4F5C\uFF0C\u4F46\u662F\u5143\u7EC4\u5728\u521D\u59CB\u5316\u540E\u5176\u4E2D\u7684\u5143\u7D20\u4E0D\u80FD\u8FDB\u884C\u66F4\u6539\uFF0C\u5217\u8868\u5728\u8D4B\u503C\u65F6\u4F7F\u7528\u65B9\u62EC\u53F7\`[]\`\uFF0C\u800C\u5143\u7EC4\u5728\u8D4B\u503C\u65F6\u4F7F\u7528\u5C0F\u62EC\u53F7\`()\`\u3002\u56E0\u4E3A\u5143\u7EC4\u5177\u6709\u4E0D\u53EF\u53D8\u7684\u7279\u6027\uFF0C\u6240\u4EE5\u5728\u80FD\u7528\u5143\u7EC4\u66FF\u4EE3\u5217\u8868\u7684\u5730\u65B9\u6700\u597D\u90FD\u4F7F\u7528\u5143\u7EC4\uFF0C\u8FD9\u6837\u4EE3\u7801\u66F4\u5B89\u5168\u3002
#####\u521B\u5EFA\u5143\u7EC4
\u5143\u7EC4\u521B\u5EFA\u5F88\u7B80\u5355\uFF0C\u53EA\u9700\u8981\u5728\u62EC\u53F7\`()\`\u4E2D\u6DFB\u52A0\u5143\u7D20\uFF0C\u5143\u7D20\u4E4B\u95F4\u7528\u9017\u53F7\u9694\u5F00\u3002\u5143\u7EC4\u4E2D\u53EA\u5305\u542B\u5355\u4E2A\u5143\u7D20\u65F6\uFF0C\u9700\u8981\u5728\u8BE5\u5143\u7D20\u540E\u9762\u6DFB\u52A0\u9017\u53F7\uFF0C\u4F8B\u5982\uFF1A
\`menu1 = ('meat','fish','chicken')\`
\`menu2 = ('meat',)\`
**![,](/api/attachments/386428)**
#####\u8BBF\u95EE\u5143\u7EC4
\u5143\u7EC4\u548C\u5217\u8868\u4E00\u6837\uFF0C\u53EF\u4EE5\u4F7F\u7528\u4E0B\u6807\u7D22\u5F15\u6765\u8BBF\u95EE\u5143\u7EC4\u4E2D\u7684\u503C\uFF0C\u4F8B\u5982:
\`\`\`python
menu = ('meat','fish','chicken','carrot')
print(menu[0])
print(menu[1:3])
\`\`\`
\u8F93\u51FA\u7ED3\u679C\uFF1A
\`meat\`
\`('fish', 'chicken')\`
#####\u4FEE\u6539\u5143\u7EC4
\u5143\u7EC4\u4E2D\u7684\u5143\u7D20\u503C\u662F\u4E0D\u53EF\u4EE5\u4FEE\u6539\u7684\uFF0C\u5982\u679C\u5F3A\u884C\u4FEE\u6539\u4F1A\u62A5\u9519\uFF0C\u4F8B\u5982\u5982\u679C\u6211\u4EEC\u60F3\u4FEE\u6539\u5143\u7EC4\`menu\`\u4E2D\u7684\u67D0\u4E2A\u503C\uFF1A
\`\`\`python
menu = ('meat','fish','chicken','carrot')
menu[0] = 'pizza'
print(menu[0])
\`\`\`
\u8F93\u51FA\u7ED3\u679C\uFF1A
\`TypeError: 'tuple' object does not support item assignment\`
\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u62A5\u9519\uFF0C\u5143\u7EC4\u4E2D\u7684\u5143\u7D20\u503C\u4E0D\u652F\u6301\u4FEE\u6539\u3002
#####\u5143\u7EC4\u5185\u7F6E\u51FD\u6570
\u5143\u7EC4\u548C\u5217\u8868\u4E00\u6837\uFF0C\u90FD\u6709\u4E00\u4E9B\u5185\u7F6E\u51FD\u6570\u65B9\u4FBF\u7F16\u7A0B\u3002\u4F8B\u5982\uFF1A
\`len(tuple)\`\uFF1A\u8BA1\u7B97\u5143\u7EC4\u4E2D\u5143\u7D20\u4E2A\u6570\u3002
\`max(tuple)\`\uFF1A\u8FD4\u56DE\u5143\u7EC4\u4E2D\u5143\u7D20\u7684\u6700\u5927\u503C\u3002
\`min(tuple)\`\uFF1A\u8FD4\u56DE\u5143\u7EC4\u4E2D\u5143\u7D20\u7684\u6700\u5C0F\u503C\u3002
\`tuple(seq)\`\uFF1A\u5C06\u5217\u8868\u8F6C\u6362\u4E3A\u5143\u7EC4\u3002
\u5143\u7EC4\u4E2D\u7684\u5143\u7D20\u662F\u4E0D\u80FD\u6539\u53D8\u7684\uFF0C\u5B83\u4E5F\u6CA1\u6709\`append()\`\uFF0C\`insert()\`\u8FD9\u6837\u7684\u65B9\u6CD5\u3002\u4F46\u5176\u4ED6\u83B7\u53D6\u5143\u7D20\u7684\u65B9\u6CD5\u548C\u5217\u8868\u662F\u4E00\u6837\u7684\u3002
####\u7F16\u7A0B\u8981\u6C42
\u672C\u5173\u7684\u7F16\u7A0B\u4EFB\u52A1\u662F\u8865\u5168\`src/Step1/menu_test.py\`\u6587\u4EF6\u7684\u4EE3\u7801\u5185\u5BB9\uFF0C\u5B9E\u73B0\u5982\u4E0B\u529F\u80FD\uFF1A
- \u5C06\u8F93\u5165\u7684\u83DC\u5355menu_list\u8F6C\u6362\u4E3A\u5143\u7EC4\u7C7B\u578B
- \u6253\u5370\u8F93\u51FA\u751F\u6210\u7684\u5143\u7EC4
- \u6253\u5370\u8F93\u51FA\u5143\u7EC4\u4E2D\u9996\u5B57\u6BCD\u6700\u5927\u7684\u5143\u7D20
\u672C\u5173\u6D89\u53CA\u7684\u4EE3\u7801\u6587\u4EF6\`src/Step1/menu_test.py\`\u7684\u4EE3\u7801\u6846\u67B6\u5982\u4E0B\uFF1A
\`\`\`python
# coding=utf-8
# \u521B\u5EFA\u5E76\u521D\u59CB\u5316munu_list\u5217\u8868
menu_list = []
while True:
try:
food = input()
menu_list.append(food)
except:
break
# \u8BF7\u5728\u6B64\u6DFB\u52A0\u4EE3\u7801\uFF0C\u5BF9menu_list\u8FDB\u884C\u5143\u7EC4\u8F6C\u6362\u4EE5\u53CA\u5143\u7EC4\u8BA1\u7B97\u7B49\u64CD\u4F5C\uFF0C\u5E76\u6253\u5370\u8F93\u51FA\u5143\u7EC4\u53CA\u5143\u7EC4\u6700\u5927\u7684\u5143\u7D20
###### Begin ######
####### End #######
\`\`\`
####\u6D4B\u8BD5\u8BF4\u660E
\u672C\u5173\u7684\u6D4B\u8BD5\u6587\u4EF6\u662F\`src/Step1/menu_test.py\`\uFF0C\u6D4B\u8BD5\u8FC7\u7A0B\u5982\u4E0B\uFF1A
1. \u5E73\u53F0\u81EA\u52A8\u7F16\u8BD1\u5E76\u8FD0\u884C\`menu_test.py\`\uFF0C\u5E76\u4EE5\u6807\u51C6\u8F93\u5165\u65B9\u5F0F\u63D0\u4F9B\u6D4B\u8BC4\u8F93\u5165\uFF1B
3. \u5E73\u53F0\u83B7\u53D6\u7A0B\u5E8F\u7684\u8F93\u51FA\uFF0C\u7136\u540E\u5C06\u5176\u4E0E\u9884\u671F\u8F93\u51FA\u5BF9\u6BD4\uFF0C\u5982\u679C\u4E00\u81F4\u5219\u6D4B\u8BD5\u901A\u8FC7\uFF1B\u5426\u5219\u6D4B\u8BD5\u5931\u8D25\u3002
\u4EE5\u4E0B\u662F\u5E73\u53F0\u5BF9\`src/Step1/menu_test.py\`\u7684\u6837\u4F8B\u6D4B\u8BD5\u96C6\uFF1A
\u6D4B\u8BD5\u8F93\u5165\uFF1A
\`beef\`
\`veal\`
\`lamb\`
\`pork\`
\u9884\u671F\u8F93\u51FA\uFF1A
\`('beef', 'veal', 'lamb', 'pork')\`
\`veal\`
\u6D4B\u8BD5\u8F93\u5165\uFF1A
\`duck\`
\`broth\`
\`fish\`
\`macaroni\`
\u9884\u671F\u8F93\u51FA\uFF1A
\`('duck', 'broth', 'fish', 'macaroni')\`
\`macaroni\`
\u5F00\u59CB\u4F60\u7684\u4EFB\u52A1\u5427\uFF0C\u795D\u4F60\u6210\u529F\uFF01
\u5982\u679C\u4F60\u5E0C\u671B\u6210\u529F\uFF0C\u4EE5\u6052\u5FC3\u4E3A\u826F\u53CB\uFF0C\u4EE5\u7ECF\u9A8C\u4E3A\u53C2\u8C0B\uFF0C\u4EE5\u5C0F\u5FC3\u4E3A\u5144\u5F1F\uFF0C\u4EE5\u5E0C\u671B\u4E3A\u54E8\u5175\u3002
![](/api/attachments/171251)`,score:100,path:"src/step1/menu_test.py",difficulty:1,st:0,web_route:null,modify_time:"2020-07-20T15:04:34.000+08:00",exec_time:9,praises_count:0,ignore_space:1,open_rank:"CLOSE",hide_answer:!1,disable_copy:!1},shixun:{id:5207,name:"Python\u5143\u7EC4\u4E0E\u5B57\u5178\u5165\u95E8",user_id:1,gpid:null,visits:17,created_at:"2021-03-15T11:18:22.000+08:00",updated_at:"2021-03-16T20:38:08.000+08:00",status:0,language:"Python3.6",authentication:!1,identifier:"pmrfko5h",trainee:1,major_id:635,webssh:0,homepage_show:!1,hidden:!1,fork_from:3028,can_copy:!1,modify_time:"2017-10-11T09:45:02.000+08:00",reset_time:"2017-10-11T09:45:02.000+08:00",publish_time:"2019-08-02T11:30:27.000+08:00",closer_id:null,end_time:null,git_url:"eduforge/afvk9r35-1",myshixuns_count:1,challenges_count:4,use_scope:0,mirror_script_id:null,image_text:null,show_code_dir:!1,task_pass:!1,exec_time:145,test_set_permission:!0,sigle_training:!1,hide_code:!1,multi_webssh:!1,excute_time:null,repo_name:"innov/pmrfko5h20210315111822",averge_star:5,opening_time:null,users_count:1,forbid_copy:!1,pod_life:0,code_edit_permission:!1,laboratory_id:null,vip:!1,is_jupyter:!1,public:0,is_wechat_support:!0,to_be_built:!1,prebuild_click_count:0,display_git_address:!1,delete_user_id:null,sticky:0},myshixun:{id:576993,shixun_id:5207,is_public:!0,user_id:1,gpid:null,created_at:"2021-03-16T20:38:10.000+08:00",updated_at:"2021-03-16T21:28:39.000+08:00",status:0,identifier:"ln7i95zmef",commit_id:"c170e4ad0cb670cd610754f374af5f35974f4f8a",modify_time:"2017-10-11T09:45:02.000+08:00",reset_time:"2017-10-11T09:45:02.000+08:00",system_tip:!1,git_url:null,onclick_time:"2021-03-16T20:38:10.000+08:00",repo_name:"innov/ln7i95zmef20210316203810",hidden:!1,reset_repository_user_id:null},rank_name:null,windows_vnc:!0,user:{user_id:1,login:"innov",name:"99999",grade:368953,identity:1,image_url:"avatars/User/1?t=1593675434",school:"",user_url:"/users/innov"},tpm_modified:!1,tpm_cases_modified:!1,mirror_name:["Python3.6"],has_answer:!0,mirror_description:[`##### \u9002\u7528\u573A\u666F\r
\u7A0B\u5E8F\u8BBE\u8BA1\u3001\u7F51\u7EDC\u722C\u866B\u3001\u56FE\u50CF\u5904\u7406\u3001\u5927\u6570\u636E\u3001\u4EBA\u5DE5\u667A\u80FD\r
##### \u5305\u542B\u7684\u70ED\u95E8\u5E93\r
basemap;beautifulsoup4;Django;Flask;Keras;matplotlib;numpy;opencv;pip;PyMySQL;Scrapy;tensorflow;torch;pandas;tensorboard;requests;scikit-learn\r
##### \u5DF2\u5B89\u88C5\u5E93\u5217\u8868\uFF1A\r
absl-py;asn1crypto;astor;attrs;Automat;backcall;baidu-aip;basemap;beautifulsoup4;bleach;blinker;blis;bokeh;boto;boto3;botocore;cachetools;catalogue;certifi;cffi;chardet;click;constantly;crypto;cryptography;cssselect;cssutils;cycler;cymem;Cython;decorator;Django;dlib;dnspython;docutils;dominate;dpkt;dyNET;EasyProcess;et-xmlfile;ExifRead;face-recognition;face-recognition-models;ffmpeg;Flask;Flask-Bootstrap;Flask-Mail;Flask-SQLAlchemy;Flask-WTF;fonttools;gast;gensim;gpt-2-simple;graphviz;grpcio;h5py;html5lib;hyperlink;idna;importlib-metadata;incremental;IPy;ipython;ipython-genutils;itsdangerous;jdcal;jedi;jieba;Jinja2;jmespath;JPype1;Keras;Keras-Applications;Keras-Preprocessing;kiwisolver;lightgbm;llvmlite;lxml;Markdown;MarkupSafe;matplotlib;mpmath;murmurhash;mysql-connector;mysqlclient;Naked;networkx;nltk;numba;numpy;olefile;opencv-contrib-python;opencv-python;openpyxl;packaging;pandas;parsel;parso;patsy;pexpect;pickleshare;Pillow;pip;plac;popen;premailer;preshed;prettytable;prompt-toolkit;protobuf;psutil;ptyprocess;py4j;pyasn1;pyasn1-modules;PyAudio;pycparser;pycryptodome;pycurl;PyDispatcher;pydub;pyecharts;PyExecJS;Pygments;pygraphviz;pyhanlp;pymongo;PyMySQL;pyOpenSSL;pyparsing;PyPDF2;pyproj;pyquery;pyshp;pyspark;python-dateutil;python-docx;pyttsx3;pytz;PyVirtualDisplay;PyYAML;queuelib;regex;requests;rsa;s3transfer;scapy;scikit-learn;scipy;Scrapy;seaborn;selenium;service-identity;setuptools;shellescape;simplejson;six;smart-open;snapshot-phantomjs;snownlp;soupsieve;spacy;SQLAlchemy;srsly;statsmodels;sympy;tensorboard;tensorflow;tensorflow-tensorboard;termcolor;thinc;toposort;torch;torchvision;tornado;tqdm;traitlets;Twisted;urllib3;visitor;w3lib;wasabi;wcwidth;Werkzeug;wheel;wikipedia;wordcloud;WTForms;xgboost;xlrd;XlsxWriter;xlwt;z3-solver;zipp;zope.interface`],test_sets:[{is_public:!0,result:null,input:`pizza
ch icken
ca rrot
turkey
banana`,output:`('piz za', 'chicken', 'carrot', 'turkey', 'banana')
turkey
`,actual_output:null,compile_success:null,ts_time:null,ts_mem:null},{is_public:!0,result:null,input:`potato\r
agaric\r
beet\r
tomato`,output:`('potato', 'agaric', 'beet', 'tomato')
tomato
`,actual_output:null,compile_success:null,ts_time:null,ts_mem:null},{is_public:!1,result:null,input:`Spring Rolls\r
Lobster slices\r
Fried Wonton\r
Fried seaweed\r
Shrimp stoast\r
Wonton soup\r
shark fin soup`,output:`('Spring Rolls', 'Lobster slices', 'Fried Wonton', 'Fried seaweed', 'Shrimp stoast', 'Wonton soup', 'shark fin soup')
shark fin soup
`,actual_output:null,compile_success:null,ts_time:null,ts_mem:null},{is_public:!1,result:null,input:`turkey\r
duck\r
agaric\r
lamb`,output:`('turkey', 'duck', 'agaric', 'lamb')
turkey
`,actual_output:null,compile_success:null,ts_time:null,ts_mem:null},{is_public:!1,result:null,input:"Fried seaweed",output:`('Fried seaweed',)
Fried seaweed
`,actual_output:null,compile_success:null,ts_time:null,ts_mem:null}],allowed_unlock:!0,test_sets_count:null,sets_error_count:null}),G=Object(X.a)(i,2),A=G[0],Z=G[1],Q=h.match.params,P=h.location.query,me;Object(g.useEffect)(function(){oe()},[]),Object(g.useEffect)(function(){N.host&&setTimeout(function(){o.a.publish("create-socket",1)},500)},[N]);var oe=function(){var w=Object(v.a)(j.a.mark(function n(){var t;return j.a.wrap(function(F){for(;;)switch(F.prev=F.next){case 0:if(console.log("par\xE5ms:",Q,h),!(P.type==="terminal")){F.next=6;break}return F.next=4,Object($.a)("/api/myshixuns/".concat(P.taskId||"f3n9o5xvik","/open_webssh.json"),{method:"get"});case 4:t=F.sent,b(Object(s.a)({},t));case 6:P.type==="windows";case 7:case"end":return F.stop()}},n)}));return function(){return w.apply(this,arguments)}}();return S.a.createElement("section",{style:{position:"fixed",width:"100%",height:"100%",zIndex:22,top:0,right:0,bottom:0,left:0}},P.type==="terminal"&&S.a.createElement(f.a,{sshConfigData:N,sid:1}),P.type!=="terminal"&&S.a.createElement(se.a,{taskId:P.type==="windows"?"pcf9t4w6vrnz":"ijby95c82nsh",vnc_url:P.type==="vnc",window_vnc_url:P.type==="windows",taskData:A}))};a.default=Object(U.a)(function(y){var _=y.classroomList,D=y.loading,I=y.globalSetting;return{classroomList:_,globalSetting:I,loading:D.models.classroomList}})(ue)},qZJd:function(J,a,e){"use strict";var s=e("MXD1"),v=e("CFYs"),X=e("miYZ"),E=e("tsqr"),L=e("2qtc"),j=e("kLXV"),g=e("5Tp6"),S=e("Cmcn"),U=e("k16G"),f=e("XEnU"),se=e("c1Ei"),l=e.n(se),d=e("q1tI"),o=e.n(d),$=e("IxHN"),ue=e("bdgK"),y=e("M8RZ"),_=e("WHYC"),D=e("1dTM"),I=e.n(D),p=e("dhSg"),c=e("+L6B"),h=e("2/Rp"),C=e("5NDa"),B=e("5rEg"),N=e("AKST"),b=B.a.TextArea,i=function(r){var R=r.onCancel,M=r.onSave,V=r.content,le=Object(d.useState)(V),Y=Object(U.a)(le,2),fe=Y[0],_e=Y[1];function De(re){_e(re.target.value)}function ve(){M(fe)}return Object(d.useEffect)(function(){_e(V)},[V]),o.a.createElement("div",{className:"clipboard-box"},o.a.createElement("h3",null,"\u5B9E\u9A8C\u73AF\u5883\u526A\u5207\u677F\uFF1A"),o.a.createElement(b,{value:fe,onChange:De,className:"clipboard"}),o.a.createElement("p",null," ",o.a.createElement("b",null," 1.\u4ECE\u5916\u90E8\u590D\u5236\u5185\u5BB9\u5230\u5B9E\u9A8C\u73AF\u5883\u5185\uFF1A ")," \u7C98\u8D34\u5185\u5BB9\u5230\u4E0A\u9762\u6587\u672C\u6846\uFF0C\u70B9\u51FB\u4FDD\u5B58\uFF0C\u7136\u540E\u5728\u5B9E\u9A8C\u73AF\u5883\u4E2D\u8FDB\u884C\u7C98\u8D34\u3002 "),o.a.createElement("p",null," ",o.a.createElement("b",null," 2.\u83B7\u53D6\u5B9E\u9A8C\u73AF\u5883\u4E2D\u7684\u5185\u5BB9\uFF1A ")," \u8BF7\u5148\u5728\u73AF\u5883\u4E2D\u590D\u5236\u5185\u5BB9\uFF0C\u590D\u5236\u52A8\u4F5C\u5B8C\u6210\u540E\u5185\u5BB9\u4F1A\u663E\u793A\u5728\u4E0A\u9762\u6587\u672C\u6846\uFF0C\u7136\u540E\u5728\u4E0A\u9762\u6587\u672C\u6846\u4E2D\u518D\u6B21\u590D\u5236\u3002 "),o.a.createElement("div",{className:"btn-action-container"},o.a.createElement(h.a,{type:"ghost",onClick:R,style:{marginRight:10}},"\u53D6\u6D88"),o.a.createElement(h.a,{type:"primary",onClick:ve},"\u4FDD\u5B58")))},G=e("ErOA"),A=e("IZBM"),Z=e("ye1Q"),Q=e("wd/R"),P=e.n(Q),me=o.a.createElement(Z.a,{style:{fontSize:24},spin:!0});function oe(r){return r.replace(/\\u([\dA-Za-z]{4})/g,function(R,M){return String.fromCharCode(parseInt("0x"+M))})}function w(r){r||(r=window.location.search);var R=r.substr(1),M={};return R.split("&").forEach(function(V){var le=V.split("=");M[le[0]]=decodeURIComponent(le[1])}),M}var n={loading:!0,isLarge:!1,showClipBoardBox:!1,transferContent:"",mes:"\u5B9E\u9A8C\u73AF\u5883\u51C6\u5907\u4E2D"},t;(function(r){r[r.SET_LOADING=0]="SET_LOADING",r[r.SET_IS_LARGE=1]="SET_IS_LARGE",r[r.SET_MES=2]="SET_MES",r[r.SET_STATE=3]="SET_STATE",r[r.SHOW_CLIPBOARD_BOX=4]="SHOW_CLIPBOARD_BOX",r[r.SET_TRANSFER_CONTENT=5]="SET_TRANSFER_CONTENT"})(t||(t={}));function W(r,R){switch(R.type){case t.SET_LOADING:return Object(f.a)(Object(f.a)({},r),{},{loading:R.payload});case t.SET_IS_LARGE:return Object(f.a)(Object(f.a)({},r),{},{isLarge:R.payload});case t.SET_MES:return Object(f.a)(Object(f.a)({},r),{},{mes:R.payload});case t.SET_STATE:return Object(f.a)(Object(f.a)({},r),R.payload);case t.SET_TRANSFER_CONTENT:return Object(f.a)(Object(f.a)({},r),{},{transferContent:R.payload});case t.SHOW_CLIPBOARD_BOX:return Object(f.a)(Object(f.a)({},r),{},{showClipBoardBox:R.payload});default:throw new Error}}var F=a.a=function(r){var R=r.vnc_url,M=r.window_vnc_url,V=r.linux_vnc,le=r.taskId,Y=Object(d.useRef)(),fe=Object(d.useRef)(),_e=Object(d.useRef)(),De=Object(d.useReducer)(W,n),ve=Object(U.a)(De,2),re=ve[0],H=ve[1],xe=Object(d.useState)(0),Le=Object(U.a)(xe,2),ge=Le[0],ye=Le[1],Ie=re.mes,be=re.loading,Be=re.showClipBoardBox,q=re.isLarge,Ne=re.transferContent,we=Object(d.useState)(0),Ue=Object(U.a)(we,2),ee=Ue[0],pe=Ue[1],Ee=Object(d.useRef)(),Pe=Object(_.m)();Object(d.useEffect)(function(){return window.addEventListener("visibilitychange",Ce),function(){window.removeEventListener("visibilitychange",Ce)}},[]);var Ce=function(O){if(document.visibilityState==="visible"){var m=sessionStorage.vncPageLeaveTime;P()(new Date).diff(P()(m),"minutes")>9&&ye(new Date().getTime()),sessionStorage.removeItem("vncPageLeaveTime")}else sessionStorage.vncPageLeaveTime=new Date};function Re(){H({type:t.SHOW_CLIPBOARD_BOX,payload:!1})}function We(){H({type:t.SET_IS_LARGE,payload:!q})}function Fe(u){var O;return Y.current&&(O=new ue.a(function(m){var ae=Object(S.a)(m),T;try{for(ae.s();!(T=ae.n()).done;){var ce=T.value;(ce.target.offsetHeight>0||ce.target.offsetWidth>0)&&u._eventHandlers.windowResize()}}catch(de){ae.e(de)}finally{ae.f()}}),O.observe(Y.current)),O}var ke=function(){var u=Object(g.a)(l.a.mark(function O(){var m;return l.a.wrap(function(T){for(;;)switch(T.prev=T.next){case 0:return T.next=2,Object(G.a)("/api/tasks/".concat(Pe.taskId||le,"/get_vnc_link.json"),{method:"post",params:Object(f.a)({},Pe)});case 2:if(m=T.sent,!((m==null?void 0:m.status)===-3)){T.next=5;break}return T.abrupt("return",new Promise(function(){var ce=Object(g.a)(l.a.mark(function de(Te,x){return l.a.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:j.a.confirm({content:"\u68C0\u6D4B\u5230\u60A8\u5DF2\u7ECF\u5F00\u542F\u4E86\u5176\u4ED6\u5B9E\u9A8C\u73AF\u5883\uFF0C\u8BF7\u5148\u5173\u95ED\u73AF\u5883\u540E\uFF0C\u518D\u8FDE\u63A5",okText:"\u7ACB\u5373\u5173\u95ED",cancelText:"\u7A0D\u540E\u5173\u95ED",onOk:function(){var ne=Object(g.a)(l.a.mark(function he(){return l.a.wrap(function(te){for(;;)switch(te.prev=te.next){case 0:return clearTimeout(Ee.current),pe(0),te.next=4,Object(A.e)(Pe.taskId,m==null?void 0:m.message);case 4:return ye(ge+1),te.abrupt("return");case 6:case"end":return te.stop()}},he)}));function z(){return ne.apply(this,arguments)}return z}()});case 1:case"end":return K.stop()}},de)}));return function(de,Te){return ce.apply(this,arguments)}}()));case 5:if(!((m==null?void 0:m.status)===-1)){T.next=7;break}throw new String(m==null?void 0:m.message);case 7:return p.a.publish("update-windows-time",m==null?void 0:m.data),T.abrupt("return",m);case 9:case"end":return T.stop()}},O)}));return function(){return u.apply(this,arguments)}}();Object(d.useEffect)(function(){var u,O;function m(x){M&&(E.b.warn("\u7531\u4E8E\u957F\u65F6\u95F4\u672A\u64CD\u4F5C\uFF0C\u8FDE\u63A5\u5931\u6548\uFF0C\u6B63\u5728\u91CD\u65B0\u8FDE\u63A5Windows VNC\u670D\u52A1"),H({type:t.SET_LOADING,payload:!0}),ye(ge+1))}p.a.subscribe("reset-linux-windows-loading",function(){H({type:t.SET_LOADING,payload:!0})}),p.a.subscribe("reset-linux-windos-vnc",function(){ye(ge+1)});function ae(){clearTimeout(Ee.current),pe(100),setTimeout(function(){H({type:t.SET_LOADING,payload:!1})},1300),p.a.subscribe("send-ctrl-alt-delete",function(){var x;(x=u)===null||x===void 0||x.sendCtrlAltDel()})}function T(x){var k=oe(x.detail.text);H({type:t.SET_TRANSFER_CONTENT,payload:k})}if((M||R||V)&&Y.current){clearTimeout(Ee.current),new Promise(Object(g.a)(l.a.mark(function x(){var k,K,ne,z,he,Oe,te,je,Ae,Se,Me;return l.a.wrap(function(ie){for(;;)switch(ie.prev=ie.next){case 0:return k=w(),K="",ie.next=4,ke();case 4:if(z=ie.sent,!V){ie.next=11;break}return _e.current.src=(z==null||((he=z.data)===null||he===void 0)?void 0:he.vnc_url)+"&time="+Date.now(),H({type:t.SET_STATE,payload:{loading:!1,mes:"\u5B9E\u9A8C\u73AF\u5883\u91CD\u7F6E\u4E2D"}}),ie.abrupt("return");case 11:M?(ne="Edu123",K=decodeURIComponent(z==null||((Oe=z.data)===null||Oe===void 0)?void 0:Oe.vnc_url)):(je=new URL(decodeURIComponent(z==null||((te=z.data)===null||te===void 0)?void 0:te.vnc_url)),Ae=je.protocol,Se=je.searchParams,Me=je.host,ne=Se.get("password"),K="".concat(Ae==="https:"?"wss":"ws","://").concat(Me,"/").concat(k.path||"websockify"));case 12:u=new I.a(Y.current,K,{credentials:{password:ne},wsProtocols:["binary"]}),O=Fe(u),u.viewOnly=k.view_only||!1,M?u.scaleViewport=!0:u.scaleViewport=k.scale||!1,u.scaleViewport=k.scale||!0,u.resizeSession=!0,fe.current=u,u.addEventListener("disconnect",m),u.addEventListener("connect",ae),u.addEventListener("clipboard",T);case 22:case"end":return ie.stop()}},x)})));var ce=p.a.subscribe("vnc-reseting",function(){pe(0),H({type:t.SET_STATE,payload:{loading:!0,mes:"\u5B9E\u9A8C\u73AF\u5883\u91CD\u7F6E\u4E2D"}})}),de=p.a.subscribe("vnc-enlarge",function(){H({type:t.SET_IS_LARGE,payload:!0})}),Te=p.a.subscribe("show-clipboard-box",function(){H({type:t.SHOW_CLIPBOARD_BOX,payload:!0})});return pe(0),function(){var x,k,K,ne;(x=u)===null||x===void 0||x.removeEventListener("disconnect",m),(k=u)===null||k===void 0||k.removeEventListener("connect",ae),(K=u)===null||K===void 0||K.removeEventListener("clipboard",T),ce(),de(),Te(),(ne=O)===null||ne===void 0||ne.unobserve(Y.current)}}},[R,M,V,ge]);function Ke(u){var O;(O=fe.current)===null||O===void 0||O.clipboardPasteFrom(u),H({type:t.SET_TRANSFER_CONTENT,payload:u}),E.b.success("\u4FDD\u5B58\u6210\u529F\uFF01\u4F60\u53EF\u4EE5\u5728\u5B9E\u9A8C\u73AF\u5883\u4E2D\u7C98\u8D34\u8BE5\u5185\u5BB9"),Re()}Object(d.useEffect)(function(){ee==0&&(clearTimeout(Ee.current),ze())},[ee]);var ze=function u(){ee>99?ee=99:(ee=ee+1,Ee.current=setTimeout(function(){u()},1500)),ee<100&&pe(ee)},Xe=Object(d.useMemo)(function(){return be?"none":V?"block":"none"},[V,be]);return o.a.createElement(d.Fragment,null,q&&o.a.createElement("a",{className:"btn-vnc-resize",onClick:We},o.a.createElement("i",{className:"iconfont icon-tuichuquanping"})),o.a.createElement("iframe",{style:{display:Xe,position:q?"fixed":"absolute",left:0,top:q?54:40,zIndex:6,width:"100%",height:"calc(100% - ".concat(q?"100px":"45px",")")},frameBorder:"0",ref:_e}),o.a.createElement("div",{style:{position:q?"fixed":"absolute",left:0,top:q?54:40,zIndex:5,width:"100%",height:"calc(100% - ".concat(q?"100px":"45px",")")},className:"".concat(M?"vnc-panel-wrapper-windows":"vnc-panel-wrapper"," ").concat(q?"full-screen":"")},be?o.a.createElement($.a,{message:Ie,style:{color:"#4CACFF"}},o.a.createElement("div",{className:"tc",style:{width:500,margin:"0 auto",color:"#FFF"}},o.a.createElement(v.a,{percent:ee,format:function(O){return o.a.createElement("span",{className:"c-white"},O,"%")}}))):null,o.a.createElement("div",{ref:Y,className:"vnc-panel ".concat(be?"hide":"animated fadeIn")})),o.a.createElement(y.a,null,o.a.createElement(j.a,{title:"\u590D\u5236\u7C98\u8D34",centered:!0,maskClosable:!1,visible:Be,onCancel:Re,footer:null},o.a.createElement(i,{onCancel:Re,onSave:Ke,content:Ne}))))}}}]);