明月谱上轩窗
几度借閒云伴容妆
滋味难当
叹息浮生
月影门前照东墙
君子契阔
半生青丝白唯长
樽酒一杯醉兀人数几时休
多少人知灯火阑珊轻抚泪角
静夜疯长各恃一方
清风寄沥浥轻尘
蛐曲新色
岁聿其莫
轻离别
几团圆月
春归故园情如昨丝
过一段温暖时光
度一夜清凉夜色
此生渺
夜色故
三生六尘绕过归墟
画中知晓
玫瑰花香
抚一曲
宛若星河似你
by:霜
明月谱上轩窗
几度借閒云伴容妆
滋味难当
叹息浮生
月影门前照东墙
君子契阔
半生青丝白唯长
樽酒一杯醉兀人数几时休
多少人知灯火阑珊轻抚泪角
静夜疯长各恃一方
清风寄沥浥轻尘
蛐曲新色
岁聿其莫
轻离别
几团圆月
春归故园情如昨丝
过一段温暖时光
度一夜清凉夜色
此生渺
夜色故
三生六尘绕过归墟
画中知晓
玫瑰花香
抚一曲
宛若星河似你
by:霜
林泉鹿栖复一身,叶落终閒滋无穷。
酒醴霜风有虏尘,竹帘疏漏半锩空。
三生六尘濯百绮,凌山云蕴君难迹。
by:霜
前往 微信官方文档 •开放平台 ,Android开发工具包下载,范例代码HelloWeixin下载。

使用这个Android Studio 生成的keystore,有一个在线生成安卓证书在线制作工具

然后新建一个类 WXEntryActivity.java名字和文件名需要一样。

1 | /* |
然后在 AndroidManifest.xml主文件中添加
1 | <activity |
添加位置,如图红色框的部分:

其中android:name = "com.~.wxapi.WXEntryActivity"这个就是对应这个路径目录。
添加WXAPI依赖,打开build.gradle文件,注意是proj.android-studio/~你的项目名字 目录下,在dependencies中加下面的代码 api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+',这儿game下的 build.gradle也要添加。
1 | dependencies { |
AppActivity.java中的实现,wxLogin函数必须是静态的,这样才可以去外部调用。
1 | /* |
cocos登陆页面调用,微信登陆。
1 | wxChatLogin(){ |
这儿微信登陆需要真机调试,为了方便直接打包debug和release使用之前生成keystore。

上面的密码改成生成 keystore时的密码,然后再调试运行在手机上。
这儿如果有什么问题可以直接企鹅上留言: 1197696574 交流。
梨花参差春带雨,揽衣起舞暮暮情。
昨夜星辰昨夜风,月如君兮君不梦。
十里煌绸心聒碎,觑于朝暮翩跹度。
落樱春水世难顾,共逝与谁续白昼。
枕疏眉语几声留,相寻娇云东逝走。
清风拂尘契相生,只语阑珊未羞眸。
等闲春深懒红妆,彻鼓欲新待思量。
孤鸿寒枝未可栖,天地风情任由意。
有情萧何百年过,身陷囹圄良人许。
斯时一人一心忧,月上柳梢云未休。
何人与你共消酒,化作相思酿作泥。
誓恨成蝶伴花丛,枫林风下诉情话。
烟雨朦胧未见他,念旧时过往真假。
谦逊言温婉举止,再梦回红尘晚霞。
形单影只长路漫,不畏牵绊朱颜改。
天若有情天亦老,步尘时遥知谁好。
知荣岁月度匆忙,恋一生儿女情长。
悲欢离合世事道,策马一声诲人啸。
by:霜
正则表达式,又称规则表达式。在代码中常简写为regex、regexp或RE,计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
给定一个正则表达式和另一个字符串,我们可以达到如下的目的:
给定的字符串是否符合正则表达式的过滤逻辑(“匹配”);
通过正则表达式,从文本字符串中获取我们想要的特定部分(“过滤”)。
| 语法 | 说明 | 表达式实例 | 完整匹配的字符串 |
|---|---|---|---|
| 字符 | |||
| 一般字符 | 匹配自身 | abc | abc |
| . | 匹配任意除换行符”\n”外的字符。在DOTALL模式中也能匹配换行符。 | a.c | abc |
| \ | 转义字符,使后一个字符改变原来的意思,如果字符串中有字符需要匹配,可以使用\或者字符集[*]. | a\.c a\\c | a\c |
| […] | 字符集(字符类)。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c].第一个字符如果是^则表示取反,如[^abc]表示不是abc的其他字符。所有的特殊字符在字符集中都失去其原有的特俗含义。在字符集中如果要使用]、-或^,可以在前面加上反斜杠,或把]、-放在第一个字符,把^放在非第一个字符。 | a[bcd]c | abe ace ade |
| 预定义字符集 | |||
| \d | 数字:[0-9] | a\dc | a1c |
| \D | 非数字:[^\d] | a\Dc | abc |
| \s | 空白字符:[<空格>\t\r\n\f\v] | a\sc | a c |
| \w | 单词字符:[A-Z a-Z 0-9_] | a\wc | abc |
| \W | 非单词字符:[^\W] | a\Wc | a c |
| 数量词 | |||
| * | 匹配前一个字符0或无限次 | abc* | ab abcc |
| + | 匹配前一个字符1次或无限次 | abc+ | abc abcc |
| ? | 匹配前一个字符0次或1次 | abc? | ab abc abbc |
| {m} | 匹配前一个字符m次 | ab{2}c | abbc |
| {m,n} | 匹配前一个字符m至n次。m和n可以省略:若省略m,则匹配0至n次;若省略n则匹配m至无限次。 | ab{1,2}c | abc abbc |
| 边界匹配 | |||
| ^ | 匹配字符串开头。在多行模式中匹配每一行的开头 | ^abc | abc |
| $ | 匹配字符串末尾。在多行模式中匹配每一行的末尾 | abc$ | abc |
| \A | 仅匹配字符串开头。 | \Aabc | abc |
| \Z | 仅匹配字符串末尾。 | abc\Z | abc |
| \b | 匹配字\w和\W之间。 | a\b!bc | a!bc |
| \B | [^\b] | a\Bbc | abc |
| 逻辑分组 | |||
| | | |代表左右表达式任意匹配一个。它总是先尝试匹配左边的表达式,一旦成功匹配则跳过匹配右边的表达式。如果|没有被包括在()中,则它的范围是整个正则表达式。 | abc|def | abc def |
| (…) | 被括起来的表达式将作为分组,从表达式左边开始每遇到一个分组的左括号’(‘,编号+1.另外分组表达式作为一个整体,可以后接数量词。表达式中的|仅在该组中有效。 | (abc){2} a{123|456)c | abcabc a456c |
| (?P<name>…) | 分组除了原来的编号另外再指定一个额外的别名。 | (?P<id>abc){2} | abcabc |
| \<number> | 引用编号为<number>的分组匹配到的字符串。 | (\d)abc\1 | 1abc1 5abc5 |
| 特殊构造 | |||
| (?…) | (…)的部分组版本,用于使用”|”或后接数量词。 | (?:abc){2} | abcabc |
| (?iLmsux) | iLmsux的每个字符代表一个匹配模式,只能用在正则表达式的开头,可选多个。匹配模式将在下文介绍。 | (?i)abc | Abc |
| (?#…) | #后的内容将作为注释被忽略。 | abc(?#comment)123 | abc123 |
| (?=…) | 之后的字符串内容需要匹配表达式。才能成功匹配。不消耗字符串内容。 | a(?=\d)后面是数字的a | |
| (?!…) | 之后的字符串内容需要不匹配表达式。才能成功匹配。不消耗字符串内容。 | a(?!\d) 后面不是数字的a | |
| (?<=…) | 之前的字符串内容需要匹配表达式。才能成功匹配。不消耗字符串内容。 | a(?<=\d)a 前面是数字的a | |
| (?<!…) | 之前的字符串内容需要不匹配表达式。才能成功匹配。不消耗字符串内容。 | a(?<!\d)a 前面不是数字的a |
| 表达式 | 描述 |
|---|---|
| [abc] | 字符集。匹配集合中所含的任一字符。 |
| [^abc] | 否定字符集。匹配任何不在集合中的字符。 |
| [a-z] | 字符范围。匹配指定范围内的任意字符。 |
| . | 匹配除换行符以外的任何单个字符。 |
| \ | 转义字符。 |
| \w | 匹配任何字母数字,包括下划线(等价于[A-Za-z0-9_])。 |
| \W | 匹配任何非字母数字(等价于[^A-Za-z0-9_])。 |
| \d | 数字。匹配任何数字。 |
| \D | 非数字。匹配任何非数字字符。 |
| \s | 空白。匹配任何空白字符,包括空格、制表符等。 |
| \S | 非空白。匹配任何非空白字符。 |
| (expression) | 分组。匹配括号里的整个表达式。 |
| (?:expression) | 非捕获分组。匹配括号里的整个字符串但不获取匹配结果,拿不到分组引用。 |
| \num | 对前面所匹配分组的引用。比如(\d)\1可以匹配两个相同的数字,(Code)(Sheep)\1\2则可以匹配CodeSheepCodeSheep。 |
| ^ | 匹配字符串或行开头。 |
| $ | 匹配字符串或行结尾。 |
| \b | 匹配单词边界。比如Sheep\b可以匹配CodeSheep末尾的Sheep,不能匹配CodeSheepCode中的Sheep |
| \B | 匹配非单词边界。比如Code\B可以匹配HelloCodeSheep中的Code,不能匹配HelloCode中的Code。 |
| ? | 匹配前面的表达式0个或1个。即表示可选项。 |
| + | 匹配前面的表达式至少1个。 |
| * | 匹配前面的表达式0个或多个。 |
| | | 或运算符。并集,可以匹配符号前后的表达式。 |
| {m} | 匹配前面的表达式m个。 |
| {m,} | 匹配前面的表达式最少m个。 |
| {m,n} | 匹配前面的表达式最少m个,最多n个。 |
| (?=) | 正向预查。比如Code(?=Sheep)能匹配CodeSheep中的Code,但不能匹配CodePig中的Code。 |
| (?!) | 正向否定预查。比如`Code(?!Sheep)不能匹配CodeSheep中的Code,但能匹配CodePig中的Code。 |
| (?<=) | 反向预查。比如(?<=Code)Sheep能匹配CodeSheep中的Sheep,但不能匹配`ReadSheep中的Sheep。 |
| (?<!) | 反向否定预查。比如(?<!Code)Sheep不能匹配CodeSheep中的Sheep,但能匹配`ReadSheep中的Sheep。 |
| /…/i | 忽略大小写。 |
| /…/g | 全局匹配。 |
| /…/m | 多行修饰符。用于多行匹配。 |
| 描述 | 正则表达式 | 备注 |
|---|---|---|
| 数字 | ^[0-9]*$ |
|
| n位数字 | ^\d{n}$ |
|
| 至少n位数字 | ^\d{n,}$ |
|
| m~n位数字 | ^\d{m,n}$ |
|
| 整数 | ^(-?[1-9]\d*)$ |
非0开头,包括正整数和负整数 |
| 正整数 | ^[1-9]\d*$ |
|
| 负整数 | ^-[1-9]\d*$ |
|
| 非负整数 | `^(([1-9]\d*) | 0)$` |
| 非正整数 | `^((-[1-9]\d*) | 0)$` |
| 浮点数 | `^-?(?:[1-9]\d.\d | 0.\d[1-9]\d |
| 正浮点数 | `^(?:[1-9]\d.\d | 0.\d[1-9]\d)$` |
| 负浮点数 | `^-(?:[1-9]\d.\d | 0.\d[1-9]\d)$` |
| 非正浮点数 | `^(?:-(?:[1-9]\d*.\d+ | 0.\d[1-9]\d) |
| 非负浮点数 | `^(?:[1-9]\d*.\d+ | 0.\d+ |
| 仅一位小数 | `^-?(?:0 | [1-9][0-9]*).[0-9]{1}$` |
| 最少一位小数 | `^-?(?:0 | [1-9][0-9]*).[0-9]{1,}$` |
| 最多两位小数 | `^-?(?:0 | [1-9][0-9]*).[0-9]{1,2}$` |
| 连续重复的数字 | ^(\d)\1+$ |
例如:111,222 |
| 描述 | 正则表达式 | 备注 |
|---|---|---|
| 中文 | ^[\u4E00-\u9FA5]+$ |
|
| 全角字符 | ^[\uFF00-\uFFFF]+$ |
|
| 半角字符 | ^[\u0000-\u00FF]+$ |
|
| 英文字符串(大写) | ^[A-Z]+$ |
|
| 英文字符串(小写) | ^[a-z]+$ |
|
| 英文字符串(不区分大小写) | ^[A-Za-z]+$ |
|
| 中文和数字 | `^(?:[\u4E00-\u9FA5]{0,} | \d)+$` |
| 英文和数字 | ^[A-Za-z0-9]+$ |
|
| 数字、英文字母或者下划线组成的字符串 | ^\w+$ |
|
| 中文、英文、数字包括下划线 | ^[\u4E00-\u9FA5\w]+$ |
|
| 不含字母的字符串 | ^[^A-Za-z]*$ |
|
| 连续重复的字符串 | ^(.)\1+$ |
例如:aa,bb |
| 长度为n的字符串 | ^.{n}$ |
|
| ASCII | ^[ -~]$ |
| 描述 | 正则表达式 | 备注 |
|---|---|---|
| 日期 | `^\d{1,4}-(?:1[0-2] | 0?[1-9])-(?:0?[1-9] |
| 日期 | `^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9] | 1[0-2])-(?:0[1-9] |
| 时间 | `^(?:1[0-2] | 0?[1-9]):[0-5]\d:[0-5]\d$` |
| 时间 | `^(?:[01]\d | 2[0-3]):[0-5]\d:[0-5]\d$` |
| 日期+时间 | `^(\d{1,4}-(?:1[0-2] | 0?[1-9])-(?:0?[1-9] |
| 描述 | 正则表达式 | 备注 |
|---|---|---|
| 中文名 | ^[\u4E00-\u9FA5·]{2,16}$ |
|
| 英文名 | ^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$ |
|
| 车牌号 | ^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$ |
不含新能源 |
| 车牌号 | `^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]A-HJ-NP-Z | (?:(?:\d{5}[A-HJK]) |
| 火车车次 | ^[GCDZTSPKXLY1-9]\d{1,4}$ |
例如:G1234 |
| 手机号 | `^(?:(?:+ | 00)86)?1[3-9]\d{9}$` |
| 手机号 | `^(?:(?:+ | 00)86)?1(?:(?:3[\d]) |
| 固话号码 | `^(?:(?:\d{3}-)?\d{8} | ^(?:\d{4}-)?\d{7,8})(?:-\d+)?$` |
| 手机IMEI码 | ^\d{15,17}$ |
一般是15位 |
| 邮编 | `^(?:0[1-7] | 1[0-356] |
| 统一社会信用代码 | ^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$ |
|
| 身份证号码(1代) | `^[1-9]\d{7}(?:0\d | 10 |
| 身份证号码(2代) | `^[1-9]\d{5}(?:18 | 19 |
| QQ号 | ^[1-9][0-9]{4,}$ |
一般是5到10位 |
| 微信号 | ^[a-zA-Z][-_a-zA-Z0-9]{5,19}$ |
一般6~20位,字母开头,可包含字母、数字、-、_,不含特殊字符 |
| 股票代码 | `^(s[hz] | S[HZ])(000[\d]{3} |
| 银行卡卡号 | `^[1-9]{1}(?:\d{15} | \d{18})$` |
| 描述 | 正则表达式 | 备注 |
|---|---|---|
| 域名 | ^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ |
例如:r2coding.com |
| 网址 | ^(?:https?:\/\/)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ |
例如:https://www.r2coding.com/ |
| 带端口号的网址(或IP) | ^(?:https?:\/\/)?[\w-]+(?:\.[\w-]+)+:\d{1,5}\/?$ |
例如:http://127.0.0.1:8888/ |
| URL | ^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()!@:%_\+.~#?&\/\/=]*)$ |
例如:https://www.r2coding.com/#/README?id=1 |
| 邮箱email | ^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$ |
支持中文,例如:codesheep@cs.com |
| 用户名 | ^[a-zA-Z0-9_-]{4,20}$ |
4到20位 |
| 弱密码 | ^[\w]{6,16}$ |
6~16位,包含大小写字母和数字的组合 |
| 强密码 | ^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@\.#$%^&*? ]).*$ |
至少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符 |
| 端口号 | `^(?:[0-9] | [1-9][0-9]{1,3} |
| IPv4地址 | `^(?:(?:\d | [1-9]\d |
| IPv4地址+端口 | `^(?:(?:\d | [1-9]\d |
| IPv6地址 | `^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4} | ([0-9a-fA-F]{1,4}:){1,7}: |
| IPv6地址+端口 | `^[(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4} | ([0-9a-fA-F]{1,4}:){1,7}: |
| 子网掩码 | `^(?:254 | 252 |
| MAC地址 | `^(?:(?:[a-f0-9A-F]{2}:){5} | (?:[a-f0-9A-F]{2}-){5})[a-f0-9A-F]{2}$` |
| Version版本号 | ^\d+(?:\.\d+){2}$ |
例如:12.1.1 |
| 图片后缀 | `.(gif | png |
| 视频后缀 | `.(swf | avi |
| 图片链接 | `(?:https?://)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+.(gif | png |
| 视频链接 | `(?:https?://)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(?:.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+.+.(swf | avi |
| 迅雷链接 | thunderx?:\/\/[a-zA-Z\d]+= |
|
| ed2k链接 | ed2k:\/\/|file|.+|\/ |
|
| 磁力链接 | magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.* |
| 描述 | 正则表达式 | 备注 |
|---|---|---|
| MD5格式 | `^(?:[a-f\d]{32} | [A-F\d]{32})$` |
| BASE64格式 | ^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$ |
例如:data:image/jpeg;base64,xxxx== |
| UUID | ^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$ |
例如:94f9d45a-71b0-4b3c-b69d-20c4bc9c8fdd |
| 16进制 | ^[A-Fa-f0-9]+$ |
例如:FFFFFF |
| 16进制颜色 | `^#?([0-9a-fA-F]{3} | [0-9a-fA-F]{6})$` |
| SQL语句 | `^(?:select | drop |
| Java包名 | ^(?:[a-zA-Z_]\w*)+(?:[.][a-zA-Z_]\w*)+$ |
例如:com.r2coding.controller |
| 文件扩展名 | `.(?:doc | |
| Windows文件路径 | ^[a-zA-Z]:(?:\\[\w\u4E00-\u9FA5\s]+)+[.\w\u4E00-\u9FA5\s]+$ |
例如:C:\Users\Administrator\Desktop\a.txt |
| Windows文件夹路径 | ^[a-zA-Z]:(?:\\[\w\u4E00-\u9FA5\s]+)+$ |
例如:C:\Users\Administrator\Desktop |
| Linux文件路径 | ^\/(?:[^/]+\/)*[^/]+$ |
例如:/root/library/a.txt |
| Linux文件夹路径 | ^\/(?:[^/]+\/)*$ |
例如:/root/library/ |
十里桃花
三月情染风韵年华
冰冷指间
难解落雁为谁红霞
飘洒延绵风纱
漫天定温婉如画
空留一毯绿叶红花
故乡的桃花
风悠悠相思寄眉头
十里桃花
倔强的年华
挥洒热血
梦里烟花
三春遗落成过往
缠绵成桂香
镜花水月
回眸映前世三千姻缘
故乡那时的桃花
by:霜
1、以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。
2、以双下划线开头的_foo 代表类的私有成员,以双下划线开头和结尾的_foo 代表 Python 里特殊方法专用的标识,如_init_() 代表类的构造函数。
3、Python 的关键字只包含小写字母,and、exec、not、assert、finally、or、break、for pass、class、from、print、continue、global 、raise、def、if、return、del、import、try、elif、in、while、else、is、with、except、lambda、yield。
4、缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
5、Python语句中一般以新行作为语句的结束符,一行可以执行多个语句用;分开,可以使用斜杠\将一行的语句分为多行显示。
6、使用引号( ‘ )、双引号( “ )、三引号( ‘’’ 或 “”” ) 来表示字符串,三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
7、python中单行注释采用 # 开头,多行注释使用三个单引号(‘’’)或三个双引号(“””)。
8、print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,。
9、Python 中的变量赋值不需要类型声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
10、标准数据类型,Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)。
11、Python支持四种不同的数字类型,int(有符号整型)、long(长整型[也可以代表八进制和十六进制])、float(浮点型)、complex(复数)
12、Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
13、字符串截取 [头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。例如 s = ‘abcdef’ s[1:5] 输出’bcde’,s[2:],输出从第三个字符开始的字符串 s[1] 的值 b ,s[5] 的值 f。
14、列表相当于IOS中的数组。截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串,如:ss = [‘c’,’h’,’e’,’c’,’k’,’i’,’o’] ss[1:4:2] 结果为[‘h’,’c’]。
15、加号(+)是字符串连接运算符 str + “TEST” ,星号(*)是重复操作 s * 2 输出字符串两次。
16、元组是另一个数据类型,类似于 List(列表)。元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。tuple = ( ‘runoob’, 786 , 2.23, ‘john’, 70.2 ) list = [ ‘runoob’, 786 , 2.23, ‘john’, 70.2 ] tuple[2] = 1000 元组中是非法应用 list[2] = 1000 列表中是合法应用
17、pythan中的字典当中的元素是通过键来存取的,而不是通过偏移存取。字典用”{ }”标识。字典由索引(key)和它对应的值value组成。dict.keys()取出所有键 dict.values()取出所有值 和IOS基本无异。
18、数据类型转换 float(x) 将x转换到一个浮点数 int(x [,base])将x转换为一个整数 str(x) 将对象 x 转换为字符串 set(s) 转换为可变集合 dict(d) 创建一个字典。d 必须是一个序列 (key,value)元组。
19、算术运算符,这儿介绍一个// 取整除 - 返回商的整数部分(向下取整)9//2 4 和js基本无异。
20、Python身份运算符 is 是判断两个标识符是不是引用自一个对象 x is y, id() 函数用于获取对象内存地址 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False is not 是判断两个标识符是不是引用自不同对象
21、is 与 == 区别 is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。
22、简单的语句,可以在同一行的位置上使用if条件判断语句,如:var = 100 ;if ( var == 100 ) : print “变量 var 的值为100” .
23、Python for 循环语句 for iterating_var in sequence: statements(s) for letter in ‘Python’: # 第一个实例 print ‘当前字母 :’, letter
24、 使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:
class Employee:
‘所有员工的基类’
empCount = 0
def init(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def displayCount(self):
print “Total Employee %d” % Employee.empCount
def displayEmployee(self):
print “Name : “, self.name, “, Salary: “, self.salary
empCount 变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 Employee.empCount 访问。第一种方法init()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法,self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
25、self代表类的实例,而非类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。
class Test:
def prt(self):
print(self)
print(self.class)
t = Test()
t.prt()
26、使用点号 . 来访问对象的属性。使用如下类的名称访问类变量:
emp1.displayEmployee()
emp2.displayEmployee()
print “Total Employee %d” % Employee.empCount
也可以删除 del emp1.age # 删除 ‘age’ 属性
hasattr(emp1, ‘age’) # 如果存在 ‘age’ 属性返回 True。
getattr(emp1, ‘age’) # 返回 ‘age’ 属性的值
setattr(emp1, ‘age’, 8) # 添加属性 ‘age’ 值为 8
delattr(emp1, ‘age’) # 删除属性 ‘age’
27、pythan可以多继承,继承过后父类方法的功能不能满足你的需求,子类重写你父类的方法。你可以使用issubclass()或者isinstance()方法来检测。issubclass() - 布尔函数判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup), isinstance(obj, Class) 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。
28、Python同样支持运算符重载,实例如下:
class Vector:
def _init_(self, a, b):
self.a = a
self.b = b
def _str_(self):
return ‘Vector (%d, %d)’ % (self.a, self.b)
def_add_(self,other):
return Vector(self.a + other.a, self.b + other.b)
v1 = Vector(2,10)
v2 = Vector(5,-2)
print v1 + v2
结果:Vector(7,8)
29、类的私有属性__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs,在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数。
30、单下划线、双下划线、头尾双下划线说明:
_foo_: 定义的是特殊方法,一般是系统定义名字 ,类似_init_() 之类的。
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
凡尘疑似千非尽
生命有时就像花开时
花开蝶影总会有好多顾虑
也许都隐藏了自己的多少秘密
生活不知道诉说了多少不甘和苦涩
又在黑夜里放纵了多少笙歌
灵魂里沉睡的自己
不知道何时会有希望和光明
一个又一个的懦弱和胆怯
一个又一个的倾述和陪伴
时间里的那些人
永远总会有人去你不该去的地方
做你不可能做的事情
你不理解她的过去
也不明白她的未来
所有存储在大脑里的絮物
都像风一样
有的飘走
有的视如自己犹如生命的东西
都在漠然里退场
有时候不知道是岁月伤害了我
还是承诺辜负了岁月
当你拼命去想拯救的东西
后来都变成新的曲殇
有时候很想问
这个世界上哪有沾满鲜血的手
是不去曾经掏过别人的心的
枝头的鸟
明天会迎来新的黎明
岁月的伤痕
永远都会慢慢流失
只是生活不曾实现过承诺
也没能挽救那只
想要日落黄昏归去的小鸟
于是一次又一次的在夜幕里
黑暗笼罩了它的双眼
再也找不到自己的方向
如果小鸟饮的不是淡水
那它应该也不会”食盐”吧
在黑夜里寂静的死亡
等待的又一个黎明
只是再无那只小鸟
再无春夏与秋冬
by:霜
这儿我以我自己的 BankLoans 这个仓库名为例。对应的仓库地址为https://gitee.com/Kziwws/BankLoans.git
1 | git clone https://gitee.com/Kziwws/BankLoans.git #将远程仓库克隆到本地 |
克隆下来过后,找到这个文件路径,mac端的话 cd 然后拖入回车就好了.
1 | cd /~你的目录路径 |
修改代码后,在仓库目录下执行下面命令,将当前目录所有文件添加到git暂存区
1 | git add . |
提交并备注提交信息
1 | git commit -m "项目第一次上传" |
将本地提交推送到远程仓库
1 | git push origin master |
克隆下来如果是私有仓库,需要输入码云的账号和密码。
找到你项目目录文件路径,mac端的话 cd 然后拖入回车就好了.
1 | cd /~你的项目目录路径 |
始化一个仓库,本地仓库默认创建 master 分支,设置远程仓库地址,这儿这个地址要先去https://gitee.com/建立一个私有仓库。
1 | git init |
然后再push推送上去
1 | git add . |
如果是提交时可能会存在冲突,这时用户需要选择的是保留线上的文件或者舍弃线上的文件,如果您舍弃线上的文件,则在推送时选择强制推送,强制推送需要执行下面的命令(默认不推荐该行为):git push origin master -f,如果您选择保留线上的 readme 文件,则需要先执行:git pull origin master
这儿我以我自己的 BankLoans 这个仓库名为例。对应的仓库地址为https://github.com/Kziwws/BankLoans.git
1 | git clone https://github.com/Kziwws/BankLoans.git #将远程仓库克隆到本地 |
找到你项目目录文件路径,mac端的话 cd 然后拖入回车就好了.
1 | cd /~你的项目目录路径 |
始化一个仓库,设置远程仓库地址,这儿这个地址要先去https://github.com/建立一个私有仓库。
1 | git init |
在cocos2dx-js中先在判断是否是手机端isMobile,手机端包括手机网页isNative和手机原生端cc.sys.OS_IOS 、 cc.sys.OS_ANDROID,web端isBrowser。
在cocos项目中需要点击复制的地方写上方法