print("Hello, World!") // brython.js brython.info // version [3, 12, 0, 'final', 0] // implementation [3, 12, 2, 'dev', 0] // version compiled from commented, indented source files at // github.com/brython-dev/brython var __BRYTHON__=globalThis.__BRYTHON__ ||{} try{ eval("async function* f(){}")}catch(err){console.warn("Your browser is not fully supported. If you are using "+ "Microsoft Edge, please upgrade to the latest version")} (function($B){ $B.isWebWorker=('undefined' !==typeof WorkerGlobalScope)&& ("function"===typeof importScripts)&& (navigator instanceof WorkerNavigator) $B.isNode=(typeof process !=='undefined')&&(process.release.name==='node') &&(process.__nwjs !==1) var _window=globalThis; _window.location ||={href:'',origin:'',pathname:''}; _window.navigator ||={userLanguage:''} _window.document ||={getElementsByTagName:()=>[{src:"http://localhost/"}], currentScript:{src:"http://localhost/"}, querySelectorAll:()=>[]} _window.HTMLElement ||=class HTMLElement{}; _window.MutationObserver ||=function(){this.observe=()=>{};}; _window.customElements ||={define:()=>{}}; var href=_window.location.href $B.protocol=href.split(':')[0] $B.BigInt=_window.BigInt $B.indexedDB=_window.indexedDB if($B.brython_path===undefined){ var this_url; if($B.isWebWorker){this_url=_window.location.href; if(this_url.startsWith("blob:")){this_url=this_url.substr(5)}}else{this_url=document.currentScript.src} var elts=this_url.split('/'); elts.pop() $B.brython_path=elts.join('/')+'/'}else{if(! $B.brython_path.endsWith("/")){$B.brython_path+="/"}} var parts_re=new RegExp('(.*?)://(.*?)/(.*)'),mo=parts_re.exec($B.brython_path) if(mo){$B.full_url={protocol:mo[1],host:mo[2],address:mo[3]} if(['http','https'].includes(mo[1])){$B.domain=mo[1]+'://'+mo[2]}} var path=_window.location.origin+_window.location.pathname,path_elts=path.split("/") path_elts.pop() $B.script_dir=path_elts.join("/") $B.strip_host=function(url){var parts_re=new RegExp('(.*?)://(.*?)/(.*)'),mo=parts_re.exec(url) if(mo){return mo[3]} console.log(Error().stack) throw Error('not a url: '+url)} $B.__ARGV=[] $B.webworkers={} $B.file_cache={} $B.url2name={} $B.scripts={} $B.import_info={} $B.imported={} $B.precompiled={} $B.frame_obj=null $B.builtins=Object.create(null) $B.builtins_scope={id:'__builtins__',module:'__builtins__',binding:{}} $B.builtin_funcs={} $B.builtin_classes=[] $B.__getattr__=function(attr){return this[attr]} $B.__setattr__=function(attr,value){ if(['debug','stdout','stderr'].indexOf(attr)>-1){$B[attr]=value}else{throw $B.builtins.AttributeError.$factory( '__BRYTHON__ object has no attribute '+attr)}} $B.language=_window.navigator.userLanguage ||_window.navigator.language $B.locale="C" var date=new Date() var formatter=new Intl.DateTimeFormat($B.language,{timeZoneName:'short'}),short=formatter.format(date) formatter=new Intl.DateTimeFormat($B.language,{timeZoneName:'long'}) var long=formatter.format(date) var ix=0,minlen=Math.min(short.length,long.length) while(ix < minlen && short[ix]==long[ix]){ix++} $B.tz_name=long.substr(ix).trim() $B.PyCF_ONLY_AST=1024 $B.PyCF_TYPE_COMMENTS=0x1000 $B.CO_FUTURE_ANNOTATIONS=0x1000000 $B.PyCF_ALLOW_INCOMPLETE_INPUT=0x4000 if($B.isWebWorker){$B.charset="utf-8"}else{ $B.charset=document.characterSet ||document.inputEncoding ||"utf-8"} $B.max_int=Math.pow(2,53)-1 $B.min_int=-$B.max_int $B.max_float=new Number(Number.MAX_VALUE) $B.min_float=new Number(Number.MIN_VALUE) $B.int_max_str_digits=4300 $B.str_digits_check_threshold=640 $B.max_array_size=2**32-1 $B.recursion_limit=200 $B.op2method={operations:{"**":"pow","//":"floordiv","<<":"lshift",">>":"rshift","+":"add","-":"sub","*":"mul","/":"truediv","%":"mod","@":"matmul" },augmented_assigns:{"//=":"ifloordiv",">>=":"irshift","<<=":"ilshift","**=":"ipow","+=":"iadd","-=":"isub","*=":"imul","/=":"itruediv","%=":"imod","&=":"iand","|=":"ior","^=":"ixor","@=":"imatmul"},binary:{"&":"and","|":"or","~":"invert","^":"xor"},comparisons:{"<":"lt",">":"gt","<=":"le",">=":"ge","==":"eq","!=":"ne"},boolean:{"or":"or","and":"and","in":"in","not":"not","is":"is"},subset:function(){var res={},keys=[] if(arguments[0]=="all"){keys=Object.keys($B.op2method) keys.splice(keys.indexOf("subset"),1)}else{for(var arg of arguments){keys.push(arg)}} for(var key of keys){var ops=$B.op2method[key] if(ops===undefined){throw Error(key)} for(var attr in ops){res[attr]=ops[attr]}} return res}} $B.method_to_op={} for(var category in $B.op2method){for(var op in $B.op2method[category]){var method=`__${$B.op2method[category][op]}__` $B.method_to_op[method]=op}} $B.special_string_repr={8:"\\x08",9:"\\t",10:"\\n",11:"\\x0b",12:"\\x0c",13:"\\r",92:"\\\\",160:"\\xa0"} $B.$py_next_hash=Math.pow(2,53)-1 $B.$py_UUID=0 $B.lambda_magic=Math.random().toString(36).substr(2,8) $B.set_func_names=function(klass,module){for(var attr in klass){if(typeof klass[attr]=='function'){klass[attr].$infos={__doc__:klass[attr].__doc__ ||"",__module__:module,__qualname__ :klass.__qualname__+'.'+attr,__name__:attr} if(klass[attr].$type=="classmethod"){klass[attr].__class__=$B.method}}} klass.__module__=module} var has_storage=typeof(Storage)!=="undefined" if(has_storage){$B.has_local_storage=false try{if(localStorage){$B.local_storage=localStorage $B.has_local_storage=true}}catch(err){} $B.has_session_storage=false try{if(sessionStorage){$B.session_storage=sessionStorage $B.has_session_storage=true}}catch(err){}}else{$B.has_local_storage=false $B.has_session_storage=false} $B.globals=function(){ return $B.frame_obj.frame[3]} $B.scripts={} $B.$options={} $B.builtins_repr_check=function(builtin,args){ var $=$B.args('__repr__',1,{self:null},['self'],args,{},null,null),self=$.self if(! $B.$isinstance(self,builtin)){var _b_=$B.builtins throw _b_.TypeError.$factory("descriptor '__repr__' requires a "+ `'${builtin.__name__}' object but received a `+ `'${$B.class_name(self)}'`)}} $B.update_VFS=function(scripts){$B.VFS=$B.VFS ||{} var vfs_timestamp=scripts.$timestamp if(vfs_timestamp !==undefined){delete scripts.$timestamp} for(var script in scripts){if($B.VFS.hasOwnProperty(script)){console.warn("Virtual File System: duplicate entry "+script)} $B.VFS[script]=scripts[script] $B.VFS[script].timestamp=vfs_timestamp} $B.stdlib_module_names=Object.keys($B.VFS)} $B.add_files=function(files){ $B.files=$B.files ||{} for(var file in files){$B.files[file]=files[file]}} $B.has_file=function(file){ return($B.files && $B.files.hasOwnProperty(file))} $B.show_tokens=function(src,mode){ for(var token of $B.tokenizer(src,'<string>',mode ||'file')){console.log(token.type,$B.builtins.repr(token.string),token.start,token.end,token.line)}} function from_py(src,script_id){if(! $B.options_parsed){ $B.parse_options()} script_id=script_id ||'python_script_'+$B.UUID() var filename=$B.script_path+'#'+script_id $B.url2name[filename]=script_id $B.imported[script_id]={} var root=__BRYTHON__.py2js({src,filename},script_id,script_id,__BRYTHON__.builtins_scope) return root.to_js()} $B.getPythonModule=function(name){return $B.imported[name]} $B.python_to_js=function(src,script_id){ return "(function() {\n"+from_py(src,script_id)+"\nreturn locals}())"} $B.pythonToJS=$B.python_to_js $B.runPythonSource=function(src,script_id){var js=from_py(src,script_id)+'\nreturn locals' var func=new Function('$B','_b_',js) $B.imported[script_id]=func($B,$B.builtins) return $B.imported[script_id]}})(__BRYTHON__) ; __BRYTHON__.ast_classes={Add:'',And:'',AnnAssign:'target,annotation,value?,simple',Assert:'test,msg?',Assign:'targets*,value,type_comment?',AsyncFor:'target,iter,body*,orelse*,type_comment?',AsyncFunctionDef:'name,args,body*,decorator_list*,returns?,type_comment?,type_params*',AsyncWith:'items*,body*,type_comment?',Attribute:'value,attr,ctx',AugAssign:'target,op,value',Await:'value',BinOp:'left,op,right',BitAnd:'',BitOr:'',BitXor:'',BoolOp:'op,values*',Break:'',Call:'func,args*,keywords*',ClassDef:'name,bases*,keywords*,body*,decorator_list*,type_params*',Compare:'left,ops*,comparators*',Constant:'value,kind?',Continue:'',Del:'',Delete:'targets*',Dict:'keys*,values*',DictComp:'key,value,generators*',Div:'',Eq:'',ExceptHandler:'type?,name?,body*',Expr:'value',Expression:'body',FloorDiv:'',For:'target,iter,body*,orelse*,type_comment?',FormattedValue:'value,conversion,format_spec?',FunctionDef:'name,args,body*,decorator_list*,returns?,type_comment?,type_params*',FunctionType:'argtypes*,returns',GeneratorExp:'elt,generators*',Global:'names*',Gt:'',GtE:'',If:'test,body*,orelse*',IfExp:'test,body,orelse',Import:'names*',ImportFrom:'module?,names*,level?',In:'',Interactive:'body*',Invert:'',Is:'',IsNot:'',JoinedStr:'values*',LShift:'',Lambda:'args,body',List:'elts*,ctx',ListComp:'elt,generators*',Load:'',Lt:'',LtE:'',MatMult:'',Match:'subject,cases*',MatchAs:'pattern?,name?',MatchClass:'cls,patterns*,kwd_attrs*,kwd_patterns*',MatchMapping:'keys*,patterns*,rest?',MatchOr:'patterns*',MatchSequence:'patterns*',MatchSingleton:'value',MatchStar:'name?',MatchValue:'value',Mod:'',Module:'body*,type_ignores*',Mult:'',Name:'id,ctx',NamedExpr:'target,value',Nonlocal:'names*',Not:'',NotEq:'',NotIn:'',Or:'',ParamSpec:'name',Pass:'',Pow:'',RShift:'',Raise:'exc?,cause?',Return:'value?',Set:'elts*',SetComp:'elt,generators*',Slice:'lower?,upper?,step?',Starred:'value,ctx',Store:'',Sub:'',Subscript:'value,slice,ctx',Try:'body*,handlers*,orelse*,finalbody*',TryStar:'body*,handlers*,orelse*,finalbody*',Tuple:'elts*,ctx',TypeAlias:'name,type_params*,value',TypeIgnore:'lineno,tag',TypeVar:'name,bound?',TypeVarTuple:'name',UAdd:'',USub:'',UnaryOp:'op,operand',While:'test,body*,orelse*',With:'items*,body*,type_comment?',Yield:'value?',YieldFrom:'value',alias:'name,asname?',arg:'arg,annotation?,type_comment?',arguments:'posonlyargs*,args*,vararg?,kwonlyargs*,kw_defaults*,kwarg?,defaults*',boolop:['And','Or'],cmpop:['Eq','NotEq','Lt','LtE','Gt','GtE','Is','IsNot','In','NotIn'],comprehension:'target,iter,ifs*,is_async',excepthandler:['ExceptHandler'],expr:['BoolOp','NamedExpr','BinOp','UnaryOp','Lambda','IfExp','Dict','Set','ListComp','SetComp','DictComp','GeneratorExp','Await','Yield','YieldFrom','Compare','Call','FormattedValue','JoinedStr','Constant','Attribute','Subscript','Starred','Name','List','Tuple','Slice'],expr_context:['Load','Store','Del'],keyword:'arg?,value',match_case:'pattern,guard?,body*',mod:['Module','Interactive','Expression','FunctionType'],operator:['Add','Sub','Mult','MatMult','Div','Mod','Pow','LShift','RShift','BitOr','BitXor','BitAnd','FloorDiv'],pattern:['MatchValue','MatchSingleton','MatchSequence','MatchMapping','MatchClass','MatchStar','MatchAs','MatchOr'],stmt:['FunctionDef','AsyncFunctionDef','ClassDef','Return','Delete','Assign','TypeAlias','AugAssign','AnnAssign','For','AsyncFor','While','If','With','AsyncWith','Match','Raise','Try','TryStar','Assert','Import','ImportFrom','Global','Nonlocal','Expr','Pass','Break','Continue'],type_ignore:['TypeIgnore'],type_param:['TypeVar','ParamSpec','TypeVarTuple'],unaryop:['Invert','Not','UAdd','USub'],withitem:'context_expr,optional_vars?'} ; ;(function($B){$B.stdlib={} var pylist=['VFS_import','__future__','_aio','_codecs','_codecs_jp','_collections','_collections_abc','_compat_pickle','_compression','_contextvars','_csv','_dummy_thread','_frozen_importlib','_functools','_imp','_io','_markupbase','_multibytecodec','_operator','_py_abc','_pydatetime','_pydecimal','_queue','_signal','_socket','_sre','_struct','_sysconfigdata','_sysconfigdata_0_brython_','_testcapi','_thread','_threading_local','_typing','_weakref','_weakrefset','abc','antigravity','argparse','ast','asyncio','atexit','base64','bdb','binascii','bisect','browser.ajax','browser.highlight','browser.idbcache','browser.indexed_db','browser.local_storage','browser.markdown','browser.object_storage','browser.session_storage','browser.svg','browser.template','browser.timer','browser.ui','browser.webcomponent','browser.websocket','browser.worker','calendar','cmath','cmd','code','codecs','codeop','colorsys','configparser','contextlib','contextvars','copy','copyreg','csv','dataclasses','datetime','decimal','difflib','doctest','enum','errno','external_import','faulthandler','fnmatch','formatter','fractions','functools','gc','genericpath','getopt','getpass','gettext','glob','gzip','heapq','hmac','imp','inspect','interpreter','io','ipaddress','itertools','keyword','linecache','locale','mimetypes','nntplib','ntpath','numbers','opcode','operator','optparse','os','pathlib','pdb','pickle','pkgutil','platform','posixpath','pprint','profile','pwd','py_compile','pyclbr','pydoc','queue','quopri','random','re','re1','reprlib','secrets','select','selectors','shlex','shutil','signal','site','site-packages.__future__','site-packages.docs','site-packages.header','site-packages.test_sp','socket','sre_compile','sre_constants','sre_parse','stat','statistics','string','stringprep','struct','subprocess','symtable','sys','sysconfig','tabnanny','tarfile','tb','tempfile','test.namespace_pkgs.module_and_namespace_package.a_test','textwrap','this','threading','time','timeit','token','tokenize','traceback','turtle','types','typing','uu','uuid','warnings','weakref','webbrowser','zipfile','zipimport','zlib'] for(var i=0;i < pylist.length;i++){$B.stdlib[pylist[i]]=['py']} var js=['_ajax','_ast','_base64','_binascii','_io_classes','_json','_jsre','_locale','_multiprocessing','_posixsubprocess','_profile','_random','_sre','_sre_utils','_string','_strptime','_svg','_symtable','_tokenize','_webcomponent','_webworker','_zlib_utils','aes','array','builtins','dis','encoding_cp932','hashlib','hmac-md5','hmac-ripemd160','hmac-sha1','hmac-sha224','hmac-sha256','hmac-sha3','hmac-sha384','hmac-sha512','html_parser','marshal','math','md5','modulefinder','pbkdf2','posix','pyexpat','python_re','rabbit','rabbit-legacy','rc4','ripemd160','sha1','sha224','sha256','sha3','sha384','sha512','tripledes','unicodedata'] for(var i=0;i < js.length;i++){$B.stdlib[js[i]]=['js']} var pkglist=['browser','browser.widgets','collections','concurrent','concurrent.futures','email','email.mime','encodings','html','http','importlib','importlib.metadata','importlib.resources','json','logging','multiprocessing','multiprocessing.dummy','pyexpat_utils','site-packages.foobar','site-packages.simpleaio','site-packages.ui','test','test.encoded_modules','test.leakers','test.namespace_pkgs.not_a_namespace_pkg.foo','test.support','test.test_email','test.test_importlib','test.test_importlib.builtin','test.test_importlib.extension','test.test_importlib.frozen','test.test_importlib.import_','test.test_importlib.source','test.test_json','test.tracedmodules','unittest','unittest.test','unittest.test.testmock','urllib'] for(var i=0;i < pkglist.length;i++){$B.stdlib[pkglist[i]]=['py',true]} $B.stdlib_module_names=Object.keys($B.stdlib)})(__BRYTHON__) ; var $B=__BRYTHON__ $B.unicode={"No_digits":[178,179,185,[4969,9],6618,8304,[8308,6],[8320,10],[9312,9],[9332,9],[9352,9],9450,[9461,9],9471,[10102,9],[10112,9],[10122,9],[68160,4],[69216,9],[69714,9],[127232,11]],"Lo_numeric":[13317,13443,14378,15181,19968,19971,19975,19977,20061,20108,20116,20118,20159,20160,20191,20200,20237,20336,20740,20806,[20841,3,2],21313,[21315,3],21324,[21441,4],22235,22769,22777,24186,24318,24319,[24332,3],24336,25342,25420,26578,28422,29590,30334,32902,33836,36014,36019,36144,38433,38470,38476,38520,38646,63851,63859,63864,63922,63953,63955,63997,131073,131172,131298,131361,133418,133507,133516,133532,133866,133885,133913,140176,141720,146203,156269,194704]} $B.digits_starts=[48,1632,1776,1984,2406,2534,2662,2790,2918,3046,3174,3302,3430,3558,3664,3792,3872,4160,4240,6112,6160,6470,6608,6784,6800,6992,7088,7232,7248,42528,43216,43264,43472,43504,43600,44016,65296,66720,68912,69734,69872,69942,70096,70384,70736,70864,71248,71360,71472,71904,72016,72784,73040,73120,73552,92768,92864,93008,120782,120792,120802,120812,120822,123200,123632,124144,125264,130032] $B.unicode_casefold={223:[115,115],304:[105,775],329:[700,110],496:[106,780],912:[953,776,769],944:[965,776,769],1415:[1381,1410],7830:[104,817],7831:[116,776],7832:[119,778],7833:[121,778],7834:[97,702],7838:[223],8016:[965,787],8018:[965,787,768],8020:[965,787,769],8022:[965,787,834],8064:[7936,953],8065:[7937,953],8066:[7938,953],8067:[7939,953],8068:[7940,953],8069:[7941,953],8070:[7942,953],8071:[7943,953],8072:[8064],8073:[8065],8074:[8066],8075:[8067],8076:[8068],8077:[8069],8078:[8070],8079:[8071],8080:[7968,953],8081:[7969,953],8082:[7970,953],8083:[7971,953],8084:[7972,953],8085:[7973,953],8086:[7974,953],8087:[7975,953],8088:[8080],8089:[8081],8090:[8082],8091:[8083],8092:[8084],8093:[8085],8094:[8086],8095:[8087],8096:[8032,953],8097:[8033,953],8098:[8034,953],8099:[8035,953],8100:[8036,953],8101:[8037,953],8102:[8038,953],8103:[8039,953],8104:[8096],8105:[8097],8106:[8098],8107:[8099],8108:[8100],8109:[8101],8110:[8102],8111:[8103],8114:[8048,953],8115:[945,953],8116:[940,953],8118:[945,834],8119:[945,834,953],8124:[8115],8130:[8052,953],8131:[951,953],8132:[942,953],8134:[951,834],8135:[951,834,953],8140:[8131],8146:[953,776,768],8147:[912],8150:[953,834],8151:[953,776,834],8162:[965,776,768],8163:[944],8164:[961,787],8166:[965,834],8167:[965,776,834],8178:[8060,953],8179:[969,953],8180:[974,953],8182:[969,834],8183:[969,834,953],8188:[8179],64256:[102,102],64257:[102,105],64258:[102,108],64259:[102,102,105],64260:[102,102,108],64261:[64262],64262:[115,116],64275:[1396,1398],64276:[1396,1381],64277:[1396,1387],64278:[1406,1398],64279:[1396,1389]} $B.unicode_bidi_whitespace=[9,10,11,12,13,28,29,30,31,32,133,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8287,12288] ; __BRYTHON__.implementation=[3,12,2,'dev',0] __BRYTHON__.version_info=[3,12,0,'final',0] __BRYTHON__.compiled_date="2024-03-03 21:41:29.884662" __BRYTHON__.timestamp=1709498489882 __BRYTHON__.builtin_module_names=["_ajax","_ast","_base64","_binascii","_io_classes","_json","_jsre","_locale","_multiprocessing","_posixsubprocess","_profile","_random","_sre","_sre_utils","_string","_strptime","_svg","_symtable","_tokenize","_webcomponent","_webworker","_zlib_utils","array","builtins","dis","encoding_cp932","encoding_cp932_v2","hashlib","html_parser","marshal","math","modulefinder","posix","pyexpat","python_re","python_re_new","unicodedata"] ; (function($B){const tokens=['ENDMARKER','NAME','NUMBER','STRING','NEWLINE','INDENT','DEDENT','LPAR','RPAR','LSQB','RSQB','COLON','COMMA','SEMI','PLUS','MINUS','STAR','SLASH','VBAR','AMPER','LESS','GREATER','EQUAL','DOT','PERCENT','LBRACE','RBRACE','EQEQUAL','NOTEQUAL','LESSEQUAL','GREATEREQUAL','TILDE','CIRCUMFLEX','LEFTSHIFT','RIGHTSHIFT','DOUBLESTAR','PLUSEQUAL','MINEQUAL','STAREQUAL','SLASHEQUAL','PERCENTEQUAL','AMPEREQUAL','VBAREQUAL','CIRCUMFLEXEQUAL','LEFTSHIFTEQUAL','RIGHTSHIFTEQUAL','DOUBLESTAREQUAL','DOUBLESLASH','DOUBLESLASHEQUAL','AT','ATEQUAL','RARROW','ELLIPSIS','COLONEQUAL','EXCLAMATION','OP','AWAIT','ASYNC','TYPE_IGNORE','TYPE_COMMENT','SOFT_KEYWORD','FSTRING_START','FSTRING_MIDDLE','FSTRING_END','COMMENT','NL', 'ERRORTOKEN','ENCODING','N_TOKENS' ] $B.py_tokens={} var pos=0 for(var tok of tokens){$B.py_tokens[tok]=pos++} $B.py_tokens['NT_OFFSET']=256 $B.EXACT_TOKEN_TYPES={'!':'EXCLAMATION','!=':'NOTEQUAL','%':'PERCENT','%=':'PERCENTEQUAL','&':'AMPER','&=':'AMPEREQUAL','(':'LPAR',')':'RPAR','*':'STAR','**':'DOUBLESTAR','**=':'DOUBLESTAREQUAL','*=':'STAREQUAL','+':'PLUS','+=':'PLUSEQUAL',',':'COMMA','-':'MINUS','-=':'MINEQUAL','->':'RARROW','.':'DOT','...':'ELLIPSIS','/':'SLASH','//':'DOUBLESLASH','//=':'DOUBLESLASHEQUAL','/=':'SLASHEQUAL',':':'COLON',':=':'COLONEQUAL',';':'SEMI','<':'LESS','<<':'LEFTSHIFT','<<=':'LEFTSHIFTEQUAL','<=':'LESSEQUAL','=':'EQUAL','==':'EQEQUAL','>':'GREATER','>=':'GREATEREQUAL','>>':'RIGHTSHIFT','>>=':'RIGHTSHIFTEQUAL','@':'AT','@=':'ATEQUAL','[':'LSQB',']':'RSQB','^':'CIRCUMFLEX','^=':'CIRCUMFLEXEQUAL','{':'LBRACE','|':'VBAR','|=':'VBAREQUAL','}':'RBRACE','~':'TILDE'} function ISTERMINAL(x){return x < NT_OFFSET} function ISNONTERMINAL(x){return x >=NT_OFFSET} function ISEOF(x){return x==ENDMARKER}})(__BRYTHON__) ; (function($B){var _b_=$B.builtins function is_whitespace(char){return ' \n\r\t\f'.includes(char)} var unprintable_re=/\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}|\p{Zl}|\p{Zp}|\p{Zs}/u const Other_ID_Start=[0x1885,0x1886,0x2118,0x212E,0x309B,0x309C].map( x=> String.fromCodePoint(x)) function is_ID_Start(char){return/\p{Letter}/u.test(char)|| /\p{Nl}/u.test(char)|| char=='_' || Other_ID_Start.includes(char)} const Other_ID_Continue=[0x00B7,0x0387,0x1369,0x1370,0x1371,0x19DA,0x200C,0x200D,0x30FB,0xFF65]. map(x=> String.fromCodePoint(x)) function is_ID_Continue(char){return is_ID_Start(char)|| /\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}/u.test(char)|| Other_ID_Continue.includes(char)} $B.is_XID_Start=function(cp){let char=String.fromCodePoint(cp) if(! is_ID_Start(char)){return false} var norm=char.normalize('NFKC') if(! is_ID_Start(norm[0])){return false} for(let char of norm.substr(1)){if(! is_ID_Continue(char)){return false}} return true} $B.is_XID_Continue=function(cp){let char=String.fromCodePoint(cp) if(! is_ID_Continue(char)){return false} var norm=char.normalize('NFKC') for(let char of norm.substr(1)){if(! is_ID_Continue(char)){return false}} return true} $B.in_unicode_category=function(category,cp){if(isNaN(cp)){return false} try{var re=new RegExp('\\p{'+category+'}','u') return re.test(String.fromCodePoint(cp))}catch(err){ return in_unicode_category(category,cp)}} function in_unicode_category(category,cp){ var table=$B.unicode[category],start=0,end=table.length-1,len=table.length,ix=Math.floor(len/2),nb=0 var first=table[start],item=typeof first=='number' ? first :first[0] if(cp < item){return false} var last=table[end] if(typeof last=='number'){if(cp > last){return false}}else if(last[0]+last[1]< cp){return false} while(true){nb++ if(nb > 100){console.log('infinite loop for',cp) alert()} item=table[ix] if(typeof item !='number'){item=item[0]} if(item==cp){return true}else if(item > cp){end=ix}else{start=ix} len=Math.floor((end-start)/2) if(end-start==1){break} ix=start+len} var step=table[start][2] if(step===undefined){return table[start][0]+table[start][1]> cp} return(table[start][0]+step*table[start][1]> cp)&& ((cp-table[start][0])% step)==0} const FSTRING_START='FSTRING_START',FSTRING_MIDDLE='FSTRING_MIDDLE',FSTRING_END='FSTRING_END' function ord(char){if(char.length==1){return char.charCodeAt(0)} var code=0x10000 code+=(char.charCodeAt(0)& 0x03FF)<< 10 code+=(char.charCodeAt(1)& 0x03FF) return code} function $last(array){return array[array.length-1]} var ops='.,:;+-*/%~^|&=<>[](){}@', op2=['**','//','>>','<<'],augm_op='+-*/%^|&=<>@',closing={'}':'{',']':'[',')':'('} function Token(type,string,lineno,col_offset,end_lineno,end_col_offset,line){var res={type,string,line,lineno,col_offset,end_lineno,end_col_offset} res.num_type=$B.py_tokens[type] if(type=='OP'){res.num_type=$B.py_tokens[$B.EXACT_TOKEN_TYPES[string]]}else if(type=='NAME' &&['async','await'].includes(string)){res.num_type=$B.py_tokens[string.toUpperCase()]}else if(type=='ENCODING'){res.num_type=$B.py_tokens.ENCODING} res.bytes=res.string return res} function get_comment(parser,src,pos,line_num,line_start,token_name,line){var start=pos,ix var t=[] while(true){if(pos >=src.length ||(ix='\r\n'.indexOf(src[pos]))>-1){if(parser && parser.flags & $B.PyCF_TYPE_COMMENTS){var comment=src.substring(start-1,pos),mo=/^#\s*type\s*:(.*)/.exec(comment) if(mo){var is_type_ignore=false if(mo[1].startsWith('ignore')){if(mo[1].length==6){is_type_ignore=true}else{var char=mo[1][6] if(char.charCodeAt(0)<=128 &&/[a-zA-Z0-9]/.exec(char)===null){is_type_ignore=true}}} if(is_type_ignore){t.push(Token('TYPE_IGNORE',comment,line_num,start-line_start,line_num,pos-line_start+1,line))}else{t.push(Token('TYPE_COMMENT',comment,line_num,start-line_start,line_num,pos-line_start+1,line))} return{t,pos}}} t.push(Token('COMMENT',src.substring(start-1,pos),line_num,start-line_start,line_num,pos-line_start+1,line)) if(ix !==undefined){var nb=1 if(src[pos]=='\r' && src[pos+1]=='\n'){nb++}else if(src[pos]===undefined){ nb=0} t.push(Token(token_name,src.substr(pos,nb),line_num,pos-line_start+1,line_num,pos-line_start+nb+1,line)) if(src[pos]===undefined){t.push(Token('NEWLINE','\n',line_num,pos-line_start+1,line_num,pos-line_start+2,''))} pos+=nb} return{t,pos}} pos++}} function test_num(num_type,char){switch(num_type){case '': return $B.in_unicode_category('Nd',ord(char)) case 'x': return '0123456789abcdef'.includes(char.toLowerCase()) case 'b': return '01'.includes(char) case 'o': return '01234567'.includes(char) default: throw Error('unknown num type '+num_type)}} function nesting_level(token_modes){var ix=token_modes.length-1 while(ix >=0){var mode=token_modes[ix] if(mode.nesting !==undefined){return mode.nesting} ix--}} $B.tokenizer=function*(src,filename,mode,parser){var string_prefix=/^(r|u|R|U|f|F|fr|Fr|fR|FR|rf|rF|Rf|RF)$/,bytes_prefix=/^(b|B|br|Br|bR|BR|rb|rB|Rb|RB)$/ src=src.replace(/\r\n/g,'\n'). replace(/\r/g,'\n') if(mode !='eval' && ! src.endsWith('\n')){src+='\n'} var lines=src.split('\n'),linenum=0,line_at={} for(let i=0,len=src.length;i < len;i++){line_at[i]=linenum if(src[i]=='\n'){linenum++}} function get_line_at(pos){return lines[line_at[pos]]+'\n'} var state="line_start",char,cp,mo,pos=0,quote,triple_quote,escaped=false,string_start,string,prefix,name,number,num_type,comment,indent,indent_before_continuation=0,indents=[],braces=[],line,line_num=0,line_start=1,token_modes=['regular'],token_mode='regular',save_mode=token_mode,fstring_buffer,fstring_start,fstring_expr_start,fstring_escape,format_specifier if(parser){parser.braces=braces} yield Token('ENCODING','utf-8',0,0,0,0,'') while(pos < src.length){char=src[pos] cp=src.charCodeAt(pos) if(cp >=0xD800 && cp <=0xDBFF){ cp=ord(src.substr(pos,2)) char=src.substr(pos,2) pos++} pos++ if(token_mode !=save_mode){if(token_mode=='fstring'){fstring_buffer='' fstring_escape=false}else if(token_mode=='format_specifier'){format_specifier=''}} save_mode=token_mode if(token_mode=='fstring'){if(char==token_mode.quote){if(fstring_escape){fstring_buffer+='\\'+char fstring_escape=false continue} if(token_mode.triple_quote){if(src.substr(pos,2)!=token_mode.quote.repeat(2)){fstring_buffer+=char continue} char=token_mode.quote.repeat(3) pos+=2} if(fstring_buffer.length > 0){ yield Token(FSTRING_MIDDLE,fstring_buffer,line_num,fstring_start,line_num,fstring_start+fstring_buffer.length,line)} yield Token(FSTRING_END,char,line_num,pos,line_num,pos,line) token_modes.pop() token_mode=$B.last(token_modes) state=null continue}else if(char=='{'){if(src.charAt(pos)=='{'){ fstring_buffer+=char pos++ continue}else{ if(fstring_buffer.length > 0){yield Token(FSTRING_MIDDLE,fstring_buffer,line_num,fstring_start,line_num,fstring_start+fstring_buffer.length,line)} token_mode='regular_within_fstring' fstring_expr_start=pos-line_start state=null token_modes.push(token_mode)}}else if(char=='}'){if(src.charAt(pos)=='}'){ fstring_buffer+=char pos++ continue}else{ yield Token('OP',char,line_num,pos-line_start,line_num,pos-line_start+1,line) continue}}else if(char=='\\'){if(token_mode.raw){fstring_buffer+=char+char}else{if(fstring_escape){fstring_buffer+='\\'+char} fstring_escape=! fstring_escape} continue}else{if(fstring_escape){fstring_buffer+='\\'} fstring_buffer+=char fstring_escape=false if(char=='\n'){line_num++} continue}}else if(token_mode=='format_specifier'){if(char==quote){if(format_specifier.length > 0){ yield Token(FSTRING_MIDDLE,format_specifier,line_num,fstring_start,line_num,fstring_start+format_specifier.length,line) token_modes.pop() token_mode=$B.last(token_modes) continue}}else if(char=='{'){ yield Token(FSTRING_MIDDLE,format_specifier,line_num,fstring_start,line_num,fstring_start+format_specifier.length,line) token_mode='regular_within_fstring' fstring_expr_start=pos-line_start state=null token_modes.push(token_mode)}else if(char=='}'){ yield Token(FSTRING_MIDDLE,format_specifier,line_num,fstring_start,line_num,fstring_start+format_specifier.length,line) yield Token('OP',char,line_num,pos-line_start,line_num,pos-line_start+1,line) if(braces.length==0 ||$B.last(braces).char !=='{'){throw Error('wrong braces')} braces.pop() token_modes.pop() token_mode=$B.last(token_modes) continue}else{format_specifier+=char continue}} switch(state){case "line_start": line=get_line_at(pos-1) line_start=pos line_num++ if(mo=/^\f?(\r\n|\r|\n)/.exec(src.substr(pos-1))){ yield Token('NL',mo[0],line_num,0,line_num,mo[0].length,line) pos+=mo[0].length-1 continue}else if(char=='#'){comment=get_comment(parser,src,pos,line_num,line_start,'NL',line) for(var item of comment.t){yield item} pos=comment.pos state='line_start' continue} indent=0 if(char==' '){indent=1}else if(char=='\t'){indent=8} if(indent){var broken=false while(pos < src.length){if(broken && indent > 0 && ' \t'.includes(src[pos])){console.log('indentation error 479') $B.raise_error_known_location( _b_.IndentationError,filename,line_num,pos-line_start,line_num,pos-line_start+1,line,'unindent does not match any outer indentation level' )} if(src[pos]==' '){indent++}else if(src[pos]=='\t'){indent+=8}else if(src[pos]=='\\' && src[pos+1]=='\n'){ pos++ line_start=pos+2 line_num++ line=get_line_at(pos+2) broken=true}else{break} pos++} if(pos==src.length){ line_num-- break} if(src[pos]=='#'){ comment=get_comment(parser,src,pos+1,line_num,line_start,'NL',line) for(var item of comment.t){yield item} pos=comment.pos continue}else if(src[pos]=='\\'){if(/^\f?(\r\n|\r|\n)/.exec(src[pos+1])){line_num++ pos++ continue}else{$B.raise_error_known_location(_b_.SyntaxError,filename,line_num,pos+2-line_start,line_num,pos+3-line_start,line,'unexpected character after line continuation character')}}else if(mo=/^\f?(\r\n|\r|\n)/.exec(src.substr(pos))){ yield Token('NL','',line_num,pos-line_start+1,line_num,pos-line_start+1+mo[0].length,line) pos+=mo[0].length continue} if(indents.length==0 ||indent > $last(indents)){indents.push(indent) yield Token('INDENT','',line_num,0,line_num,indent,line)}else if(indent < $last(indents)){var ix=indents.indexOf(indent) if(ix==-1){var message='unindent does not match '+ 'any outer indentation level' $B.raise_error_known_location(_b_.IndentationError,filename,line_num,0,line_num,0,line,message)} for(var i=indents.length-1;i > ix;i--){indents.pop() yield Token('DEDENT','',line_num,indent,line_num,indent,line)}} state=null}else{ while(indents.length > 0){indents.pop() yield Token('DEDENT','',line_num,indent,line_num,indent,line)} state=null pos--} break case null: switch(char){case '"': case "'": quote=char triple_quote=src[pos]==char && src[pos+1]==char string_start=[line_num,pos-line_start,line_start] if(triple_quote){pos+=2} escaped=false state='STRING' string="" prefix="" break case '#': var token_name=braces.length > 0 ? 'NL' :'NEWLINE' comment=get_comment(parser,src,pos,line_num,line_start,token_name,line) for(var item of comment.t){yield item} pos=comment.pos if(braces.length==0){state='line_start'}else{state=null line_num++ line_start=pos+1 line=get_line_at(pos)} break case '0': state='NUMBER' number=char num_type='' if(src[pos]&& 'xbo'.includes(src[pos].toLowerCase())){number+=src[pos] num_type=src[pos].toLowerCase() pos++}else if(src[pos]){var pos1=pos while(pos1 < src.length){if(src[pos1].match(/\d/)){if(src[pos1]=='0'){pos1++ continue} let msg='leading zeros in decimal integer '+ 'literals are not permitted; use an 0o prefix '+ 'for octal integers' $B.raise_error_known_location(_b_.SyntaxError,filename,line_num,pos-line_start-number.length,line_num,pos-line_start,line,msg)}else{break}}} break case '.': if(src[pos]&& $B.in_unicode_category('Nd',ord(src[pos]))){state='NUMBER' num_type='' number=char}else{var op=char while(src[pos]==char){pos++ op+=char} var dot_pos=pos-line_start-op.length+1 while(op.length >=3){ yield Token('OP','...',line_num,dot_pos,line_num,dot_pos+3,line) op=op.substr(3)} for(var i=0;i < op.length;i++){yield Token('OP','.',line_num,dot_pos,line_num,dot_pos+1,line) dot_pos++}} break case '\\': var mo=/^\f?(\r\n|\r|\n)/.exec(src.substr(pos)) if(mo){if(pos==src.length-1){var msg='unexpected EOF while parsing' $B.raise_error_known_location(_b_.SyntaxError,filename,line_num,pos-line_start,line_num,pos-line_start+1,line,msg)} line_num++ pos+=mo[0].length line_start=pos+1 line=get_line_at(pos)}else{pos++; var msg='unexpected character after line '+ 'continuation character' $B.raise_error_known_location(_b_.SyntaxError,filename,line_num,pos-line_start,line_num,pos-line_start+1,line,msg)} break case '\n': case '\r': var token_name=braces.length > 0 ? 'NL':'NEWLINE' mo=/^\f?(\r\n|\r|\n)/.exec(src.substr(pos-1)) yield Token(token_name,mo[0],line_num,pos-line_start,line_num,pos-line_start+mo[0].length,line) pos+=mo[0].length-1 if(token_name=='NEWLINE'){state='line_start'}else{line_num++ line_start=pos+1 line=get_line_at(pos)} break default: if($B.is_XID_Start(ord(char))){ state='NAME' name=char}else if($B.in_unicode_category('Nd',ord(char))){state='NUMBER' num_type='' number=char}else if(ops.includes(char)){if(token_mode=='regular_within_fstring' && (char==':' ||char=='}')){if(char==':'){ if(nesting_level(token_modes)==braces.length-1){let colon=Token('OP',char,line_num,pos-line_start-op.length+1,line_num,pos-line_start+1,line) colon.metadata=src.substr( line_start+fstring_expr_start,pos-line_start-fstring_expr_start-1) yield colon token_modes.pop() token_mode='format_specifier' token_modes.push(token_mode) continue}}else{ let closing_brace=Token('OP',char,line_num,pos-line_start-op.length+1,line_num,pos-line_start+1,line) closing_brace.metadata=src.substring( line_start+fstring_expr_start,pos-1) yield closing_brace token_modes.pop() token_mode=token_modes[token_modes.length-1] if(braces.length==0 ||$B.last(braces).char !=='{'){throw Error('wrong braces')} braces.pop() continue}} var op=char if(op2.includes(char+src[pos])){op=char+src[pos] pos++} if(src[pos]=='=' &&(op.length==2 || augm_op.includes(op))){op+=src[pos] pos++}else if((char=='-' && src[pos]=='>')|| (char==':' && src[pos]=='=')){op+=src[pos] pos++} if('[({'.includes(char)){braces.push({char,pos,line_num,line_start,line})}else if('])}'.includes(char)){if(braces.length && $last(braces).char==closing[char]){braces.pop()}else{braces.push({char,pos,line_num,line_start,line})}} yield Token('OP',op,line_num,pos-line_start-op.length+1,line_num,pos-line_start+1,line)}else if(char=='!'){if(src[pos]=='='){yield Token('OP','!=',line_num,pos-line_start,line_num,pos-line_start+2,line) pos++}else{ let token=Token('OP',char,line_num,pos-line_start,line_num,pos-line_start+1,line) token.metadata=src.substring( line_start+fstring_start+2,pos-1) yield token}}else if(char==' ' ||char=='\t'){}else{ var cp=char.codePointAt(0),err_msg='invalid' if(unprintable_re.exec(char)){err_msg+=' non-printable'} var unicode=cp.toString(16).toUpperCase() while(unicode.length < 4){unicode='0'+unicode} err_msg+=` character '${char}' (U+${unicode})` if(char=='$' ||char=='`'){err_msg='invalid syntax'} var err_token=Token('ERRORTOKEN',char,line_num,pos-line_start,line_num,pos-line_start+1,line) $B.raise_error_known_token(_b_.SyntaxError,filename,err_token,err_msg)}} break case 'NAME': if($B.is_XID_Continue(ord(char))){name+=char}else if(char=='"' ||char=="'"){if(string_prefix.exec(name)||bytes_prefix.exec(name)){ state='STRING' quote=char triple_quote=src[pos]==quote && src[pos+1]==quote prefix=name if(triple_quote){pos+=2} if(prefix.toLowerCase().includes('f')){fstring_start=pos-line_start-name.length token_mode=new String('fstring') token_mode.nesting=braces.length token_mode.quote=quote token_mode.triple_quote=triple_quote token_mode.raw=prefix.toLowerCase().includes('r') token_modes.push(token_mode) var s=triple_quote ? quote.repeat(3):quote var end_col=fstring_start+name.length+s.length yield Token(FSTRING_START,prefix+s,line_num,fstring_start,line_num,end_col,line) continue} escaped=false string_start=[line_num,pos-line_start-name.length,line_start] string=''}else{yield Token('NAME',name,line_num,pos-line_start-name.length,line_num,pos-line_start,line) state=null pos--}}else{yield Token('NAME',name,line_num,pos-line_start-name.length,line_num,pos-line_start,line) state=null pos--} break case 'STRING': switch(char){case quote: if(! escaped){ var string_line=line if(line_num > string_start[0]){string_line=src.substring( string_start[2]-1,pos+2)} var full_string if(! triple_quote){full_string=prefix+quote+string+ quote yield Token('STRING',full_string,string_start[0],string_start[1],line_num,pos-line_start+1,string_line) state=null}else if(char+src.substr(pos,2)== quote.repeat(3)){full_string=prefix+quote.repeat(3)+ string+quote.repeat(3) yield Token('STRING',full_string,string_start[0],string_start[1],line_num,pos-line_start+3,string_line) pos+=2 state=null}else{string+=char}}else{string+=char} escaped=false break case '\r': case '\n': if(! escaped && ! triple_quote){ var msg=`unterminated string literal `+ `(detected at line ${line_num})`,line_num=string_start[0],col_offset=string_start[1] $B.raise_error_known_location(_b_.SyntaxError,filename,line_num,col_offset,line_num,col_offset,line,msg)} string+=char line_num++ line_start=pos+1 if(char=='\r' && src[pos]=='\n'){string+=src[pos] line_start++ pos++} line=get_line_at(pos) escaped=false break case '\\': string+=char escaped=! escaped break default: escaped=false string+=char break} break case 'NUMBER': if(test_num(num_type,char)){number+=char}else if(char=='_' && ! number.endsWith('.')){if(number.endsWith('_')){throw SyntaxError('consecutive _ in number')}else if(src[pos]===undefined || ! test_num(num_type,src[pos])){ yield Token('NUMBER',number,line_num,pos-line_start-number.length,line_num,pos-line_start,line) state=null pos--}else{number+=char}}else if(char=='.' && ! number.includes(char)){number+=char}else if(char.toLowerCase()=='e' && ! number.toLowerCase().includes('e')){if('+-'.includes(src[pos])|| $B.in_unicode_category('Nd',ord(src[pos]))){number+=char}else{yield Token('NUMBER',number,line_num,pos-line_start-number.length,line_num,pos-line_start,line) state=null pos--}}else if((char=='+' ||char=='-')&& number.toLowerCase().endsWith('e')){number+=char}else if(char.toLowerCase()=='j'){ number+=char yield Token('NUMBER',number,line_num,pos-line_start-number.length+1,line_num,pos-line_start+1,line) state=null}else if(char.match(/\p{Letter}/u)){$B.raise_error_known_location(_b_.SyntaxError,filename,line_num,pos-line_start-number.length,line_num,pos-line_start,line,'invalid decimal literal')}else{yield Token('NUMBER',number,line_num,pos-line_start-number.length,line_num,pos-line_start,line) state=null pos--} break}} switch(state){case 'line_start': line_num++ break case 'NAME': yield Token('NAME',name,line_num,pos-line_start-name.length+1,line_num,pos-line_start+1,line) break case 'NUMBER': yield Token('NUMBER',number,line_num,pos-line_start-number.length+1,line_num,pos-line_start+1,line) break case 'STRING': line_num=string_start[0] line=lines[line_num-1] var msg=`unterminated ${triple_quote ? 'triple-quoted ' : ''}`+ `string literal (detected at line ${line_num})`,col_offset=string_start[1] $B.raise_error_known_location(_b_.SyntaxError,filename,line_num,col_offset,line_num,col_offset,line,msg)} if(! src.endsWith('\n')&& state !=line_start){yield Token('NEWLINE','',line_num,pos-line_start+1,line_num,pos-line_start+1,line+'\n') line_num++} while(indents.length > 0){indents.pop() yield Token('DEDENT','',line_num,0,line_num,0,'')} yield Token('ENDMARKER','',line_num,0,line_num,0,'')}})(__BRYTHON__) ; (function($B){ var binary_ops={'+':'Add','-':'Sub','*':'Mult','/':'Div','//':'FloorDiv','%':'Mod','**':'Pow','<<':'LShift','>>':'RShift','|':'BitOr','^':'BitXor','&':'BitAnd','@':'MatMult'} var boolean_ops={'and':'And','or':'Or'} var comparison_ops={'==':'Eq','!=':'NotEq','<':'Lt','<=':'LtE','>':'Gt','>=':'GtE','is':'Is','is_not':'IsNot','in':'In','not_in':'NotIn'} var unary_ops={unary_inv:'Invert',unary_pos:'UAdd',unary_neg:'USub',unary_not:'Not'} var op_types=$B.op_types=[binary_ops,boolean_ops,compariso
Write, Run & Share Python code online using OneCompiler's Python online compiler for free. It's one of the robust, feature-rich online compilers for python language, supporting both the versions which are Python 3 and Python 2.7. Getting started with the OneCompiler's Python editor is easy and fast. The editor shows sample boilerplate code when you choose language as Python or Python2 and start coding.
OneCompiler's python online editor supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample python program which takes name as input and print your name with hello.
import sys
name = sys.stdin.readline()
print("Hello "+ name)
Python is a very popular general-purpose programming language which was created by Guido van Rossum, and released in 1991. It is very popular for web development and you can build almost anything like mobile apps, web apps, tools, data analytics, machine learning etc. It is designed to be simple and easy like english language. It's is highly productive and efficient making it a very popular language.
When ever you want to perform a set of operations based on a condition IF-ELSE is used.
if conditional-expression
#code
elif conditional-expression
#code
else:
#code
Indentation is very important in Python, make sure the indentation is followed correctly
For loop is used to iterate over arrays(list, tuple, set, dictionary) or strings.
mylist=("Iphone","Pixel","Samsung")
for i in mylist:
print(i)
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while condition
#code
There are four types of collections in Python.
List is a collection which is ordered and can be changed. Lists are specified in square brackets.
mylist=["iPhone","Pixel","Samsung"]
print(mylist)
Tuple is a collection which is ordered and can not be changed. Tuples are specified in round brackets.
myTuple=("iPhone","Pixel","Samsung")
print(myTuple)
Below throws an error if you assign another value to tuple again.
myTuple=("iPhone","Pixel","Samsung")
print(myTuple)
myTuple[1]="onePlus"
print(myTuple)
Set is a collection which is unordered and unindexed. Sets are specified in curly brackets.
myset = {"iPhone","Pixel","Samsung"}
print(myset)
Dictionary is a collection of key value pairs which is unordered, can be changed, and indexed. They are written in curly brackets with key - value pairs.
mydict = {
"brand" :"iPhone",
"model": "iPhone 11"
}
print(mydict)
Following are the libraries supported by OneCompiler's Python compiler
Name | Description |
---|---|
NumPy | NumPy python library helps users to work on arrays with ease |
SciPy | SciPy is a scientific computation library which depends on NumPy for convenient and fast N-dimensional array manipulation |
SKLearn/Scikit-learn | Scikit-learn or Scikit-learn is the most useful library for machine learning in Python |
Pandas | Pandas is the most efficient Python library for data manipulation and analysis |
DOcplex | DOcplex is IBM Decision Optimization CPLEX Modeling for Python, is a library composed of Mathematical Programming Modeling and Constraint Programming Modeling |