博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python_study-1
阅读量:5021 次
发布时间:2019-06-12

本文共 5644 字,大约阅读时间需要 18 分钟。

# Author:larlly ''' 函数 1.在Python交互式命令行下,可以直接输入代码,然后执行,并立刻得到结果。 2.文本编辑器推荐俩款     http://www.sublimetext.com/     https://notepad-plus-plus.org/ 3.python运行助手  learning.py
1 # Author:larlly  2 # python运行助手  3 r'''  4 learning.py  5   6 A Python 3 tutorial from http://www.liaoxuefeng.com  7   8 Usage:  9  10 python3 learning.py 11 ''' 12  13 import sys 14  15 def check_version(): 16     v = sys.version_info 17     if v.major == 3 and v.minor >= 4: 18         return True 19     print('Your current python is %d.%d. Please use Python 3.4.' % (v.major, v.minor)) 20     return False 21  22 if not check_version(): 23     exit(1) 24  25 import os, io, json, subprocess, tempfile 26 from urllib import parse 27 from wsgiref.simple_server import make_server 28  29 EXEC = sys.executable 30 PORT = 39093 31 HOST = 'local.liaoxuefeng.com:%d' % PORT 32 TEMP = tempfile.mkdtemp(suffix='_py', prefix='learn_python_') 33 INDEX = 0 34  35 def main(): 36     httpd = make_server('127.0.0.1', PORT, application) 37     print('Ready for Python code on port %d...' % PORT) 38     httpd.serve_forever() 39  40 def get_name(): 41     global INDEX 42     INDEX = INDEX + 1 43     return 'test_%d' % INDEX 44  45 def write_py(name, code): 46     fpath = os.path.join(TEMP, '%s.py' % name) 47     with open(fpath, 'w', encoding='utf-8') as f: 48         f.write(code) 49     print('Code wrote to: %s' % fpath) 50     return fpath 51  52 def decode(s): 53     try: 54         return s.decode('utf-8') 55     except UnicodeDecodeError: 56         return s.decode('gbk') 57  58 def application(environ, start_response): 59     host = environ.get('HTTP_HOST') 60     method = environ.get('REQUEST_METHOD') 61     path = environ.get('PATH_INFO') 62     if method == 'GET' and path == '/': 63         start_response('200 OK', [('Content-Type', 'text/html')]) 64         return [b'Learning Python

'] 65 if method == 'GET' and path == '/env': 66 start_response('200 OK', [('Content-Type', 'text/html')]) 67 L = [b'ENV'] 68 for k, v in environ.items(): 69 p = '

%s = %s' % (k, str(v)) 70 L.append(p.encode('utf-8')) 71 L.append(b'') 72 return L 73 if host != HOST or method != 'POST' or path != '/run' or not environ.get('CONTENT_TYPE', '').lower().startswith('application/x-www-form-urlencoded'): 74 start_response('400 Bad Request', [('Content-Type', 'application/json')]) 75 return [b'{"error":"bad_request"}'] 76 s = environ['wsgi.input'].read(int(environ['CONTENT_LENGTH'])) 77 qs = parse.parse_qs(s.decode('utf-8')) 78 if not 'code' in qs: 79 start_response('400 Bad Request', [('Content-Type', 'application/json')]) 80 return [b'{"error":"invalid_params"}'] 81 name = qs['name'][0] if 'name' in qs else get_name() 82 code = qs['code'][0] 83 headers = [('Content-Type', 'application/json')] 84 origin = environ.get('HTTP_ORIGIN', '') 85 if origin.find('.liaoxuefeng.com') == -1: 86 start_response('400 Bad Request', [('Content-Type', 'application/json')]) 87 return [b'{"error":"invalid_origin"}'] 88 headers.append(('Access-Control-Allow-Origin', origin)) 89 start_response('200 OK', headers) 90 r = dict() 91 try: 92 fpath = write_py(name, code) 93 print('Execute: %s %s' % (EXEC, fpath)) 94 r['output'] = decode(subprocess.check_output([EXEC, fpath], stderr=subprocess.STDOUT, timeout=5)) 95 except subprocess.CalledProcessError as e: 96 r = dict(error='Exception', output=decode(e.output)) 97 except subprocess.TimeoutExpired as e: 98 r = dict(error='Timeout', output='执行超时') 99 except subprocess.CalledProcessError as e:100 r = dict(error='Error', output='执行错误')101 print('Execute done.')102 return [json.dumps(r).encode('utf-8')]103 104 if __name__ == '__main__':105 main()

 

需要支持HTML5的浏览器:     IE >= 9     Firefox     Chrome     Sarafi 输出函数  print() 输入函数  input() 退出函数  exit()     3.x默认支持中文   2.x需要添加     #-*- coding:utf-8 -*- ''' print('100 + 200 =',100+200 ) print("hello world ","你好,世界") print(1024 * 768) #python基础 #print absolute value of an integet a = 100 if a>=0:     print(a) else:     print(-a) #print 俩行\      \本身也需要转义 print('\\\n\\') #转义太多,可以考虑r'' print(r'\\\\t\\') #如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容 print('''line1 ... line2 ... line3''') #上面是在交互式命令行内输入,注意在输入多行内容时,提示符由>>>变为...,提示你可以接着上一行输入。如果写成程序,就是: print('''line1 line2 line3''') #多行字符串'''...'''还可以在前面加上r使用 #布尔值可以用and/or/not  对应  与/或/非 print(True) print(False) print(True and False) print(True or False) print(not True) #在Python中,通常用全部大写的变量名表示常量: #运算符/和//,   /计算结果浮点数,    //地板除,结果是整数 print(10/3) print(10//3) #字符编码 #   ASCII  一个字节  GB2312     Unicode     俩个字节     GBK        GB18030      utf-8  可变长编码 #对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符 print(ord('A')) print(ord("中")) print(chr(123)) #以Unicode表示的str通过encode()方法可以编码为指定的bytes, name = 'abc' print(name.encode('ascii')) name1 = '且听风吟' print(name1.encode('utf-8')) #我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法: #name2 = "b'abc'" #name3 = "b'\xe4\xb8\x94\xe5\x90\xac\xe9\xa3\x8e\xe5\x90\x9f'"     且听风吟的字节 print(b'abc'.decode('ascii')) print(b'\xe4\xb8\x94\xe5\x90\xac\xe9\xa3\x8e\xe5\x90\x9f'.decode('utf-8')) #计算str长度(即字节数)函数   len() print(len(b'abc')) print(len(b'\xe4\xb8\x94\xe5\x90\xac\xe9\xa3\x8e\xe5\x90\x9f')) print(len("且听分吟".encode('utf-8'))) #可见,1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节 #py文件中申明了utf-8编码并不意味着你的.py文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8 without BOM编码

转载于:https://www.cnblogs.com/luoliyu/p/6531609.html

你可能感兴趣的文章
adb
查看>>
相关子查询【SQL Server】
查看>>
美国行照片集之十三:感恩节之旅
查看>>
DataGrid绑定DataTable出错
查看>>
LoadRunner参数说明
查看>>
Process Monitor and Process Explorer
查看>>
C#函数重载
查看>>
Linux学习笔记之兄弟连
查看>>
JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)
查看>>
linux运维、架构之路-redis集群
查看>>
zend studio 的vim插件
查看>>
Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum 离线+线段树
查看>>
sql server 如何查看表结构
查看>>
js判断是安卓 还是 ios webview?
查看>>
spring--Springmvc中@Autowired注解与@Resource注解的区别
查看>>
C#枚举的类型
查看>>
ASCII,非ASCII、Unicode、UTF-8、,UTF-16、UTF-32
查看>>
信息系统项目管理系列之三:项目管理过程
查看>>
1220 数字三角形
查看>>
4237: 稻草人
查看>>