http://www.web008.net

Shell分别支付二个Ubuntu版的定期提醒,功底语法相比

while :
do
 date
 sleep 600
  echo -e 'a'
 notify-send 友情提醒 已经过了10分钟了
done

VSCode设置python3的开发环境(linux下默认是python2)

**新增直接运行py文件的补充:请在py前面加上:** style="color: #ff0000;">#!/usr/bin/env python3 然后再执行 sudo chmod +x ./task.py 下次运行直接 ./task.py


python:类型(值),eg: style="color: #ff6600;">int(),long(),float(), style="color: #ff0000;">str()...等等(Python没有double类型哦~)【:转换成16进制: style="color: #ff6600;">hex()、转换为8进制: style="color: #ff6600;">oct()

美高梅163888 1

netcore:该案例推荐使用 int.TryParse,我这边就用常用的Convert系列了【支持类型比较多】

style="color: #ff6600;">Convert.ToInt64(),Convert.ToDouble(),Convert.ToString()

美高梅163888 2

算术运算符编程语言基本上差不多,Python多了个 style="color: #ff6600;">// 取商( style="color: #ff6600;">%是取余)和 幂 style="color: #ff6600;">**,来个案例:

美高梅163888 3

netcore(C#常用数学方法都在Match类中)

美高梅163888 4

+= -= *= /= %= **= //= 这些就不用详说了吧?(举个例子: style="background-color: initial;">c += a 等效于 c = c + a

Python3 与 C# 基础语法对比:

 说Python像外国版的易语言,这边就可以看出来一点了,先说说Python的逻辑运算符==》与 style="color: #ff6600;">and 或 style="color: #ff6600;">or 非 style="color: #ff6600;">not,这个倒是跟C、C#、Java等大大不同,如果再结合Python命名规则就感觉在阅读文章一样

 关系运算符和其他语言基本上差不多( style="color: #ff6600;">== != <> > < style="color: #ff6600;">>= <=),就一点不一样:也可以用<>

来个if else基础语法:括号可加可不加,但是记得加:。不用大括号,但是if里面的代码注意缩进

美高梅163888 5

netcore:if或者else下面是单行代码可以不用写括号

美高梅163888 6

再来个嵌套的:注意哦~else if 在python里面简写成了: style="color: #ff0000;">elif

美高梅163888 7

netcore:单行代码可以不用写括号

美高梅163888 8

 好久没写文章了,写个文章好慢。。。

 Python设计相关的为什么,可以参考官方文档:

直接输入python进入交互模式,相当于启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。

直接运行.py文件相当于启动了Python解释器,然后一次性把.py文件的源代码给执行了,你是没有机会以交互的方式输入源代码的。

汇总系列:

我稍微说下Linux日常使用的体验,可以略过这段:(这段放最后吧,不然认为我是打广告的就不太好了o((>ω< ))o)

3.输入输出:r''表示''内部的字符串默认不转义

核心代码:Process.Start("notify-send", "友情提醒 10分钟过去了");

原理说明:调用了ubuntu的notify-send的弹窗提醒,自己控制循环和定时

补充知识: style="color: #008000;">RuntimeInformation.IsOSPlatform(OSPlatform.xxx) 这个来判断是什么系统,OSPlatform是一个结构体

定时提醒:Thread.Sleep(new TimeSpan(0, 10, 0));

代码比较简单就不详说了,主要讲讲环境部署+发布

using System;
using System.Threading;
using System.Diagnostics;
using System.Runtime.InteropServices;


//Old: namespace netcore { class Program { static void Main(string[] args) { while (true) { try { Console.WriteLine(DateTime.Now.ToString()); Thread.Sleep(new TimeSpan(0, 10, 0)); MyBeep(); } catch { //异常还不结束? break; } } } private static void MyBeep() { if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Console.WriteLine("当前系统为Linux"); Process.Start("notify-send", "友情提醒 10分钟过去了"); //用shell启动指定程序+命令 //Process.Start(new ProcessStartInfo("notify-send", "友情提醒 10分钟过去了") { RedirectStandardOutput = true }); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Console.WriteLine("当前系统为Windows"); // frequency:提示音的频率,介于 37 到 32767 赫兹之间。// duration:提示音的持续时间,以毫秒为单位。 Console.Beep(500, 1500); } else { Console.WriteLine("精力有限,暂不支持"); } } } }

来走一个流程:(基本上跟官网走一遍,我贴几个链接和图)

我以前写的文章:

官方文档(多看看官方文档):

美高梅163888 9

2.创建一个netcore的console应用:dotnet new console

美高梅163888 10

3.安装VSCode(直接下载安装deb包即可):

4.安装VSCode的C#扩展

美高梅163888 11

5.打开刚才那个文件夹,F5试运行一下,新版的貌似不用自己配置运行路径什么的了

美高梅163888 12

6.刚才代码贴了,coding一下。调试运行什么的和win下没什么大区别

美高梅163888 13

style="color: #ff6600;">7.1发布吧,讲一下官方推荐的发布方式(适合开发人员),到项目目录下,Ctrl+ALT+T调出终端==》  style="color: #ff6600;">dotnet publish –c release

参考:

这种轻量级方式发布,把这两个文件弄出去就ok了

美高梅163888 14

运行效果:dotnet xxx.dll,如果你改了程序名字,对应配置名字也记得改哦~

美高梅163888 15

7.2美高梅163888,发布第二种方式【 style="color: #ff6600;">很多人不是开发人员也不想装runtime】(指定应用程序运行时(自宿主应用),这种方式将会把指定平台的Core CLR打包进去):

发布前先做一件事情,添加你需要支持的哪些系统,我这边win10和Ubuntu18就好了(别忘了)

style="background-color: #ffff00;">在<PropertyGroup>标签里面添加 style="color: #ff6600;"><RuntimeIdentifiers>win10-x64;ubuntu.18.04-x64; style="color: #ff6600;"></RuntimeIdentifiers>

美高梅163888 16*

style="background-color: initial;">系统命名以及系统支持参考:(貌似Android也是支持的)


美高梅163888 17

修复依赖+发布指定系统的runtime: style="color: #ff6600;">dotnet publish -c Release -r ubuntu.18.04-x64

美高梅163888 18

其实netcore2.x系列不用再输入restore了,它会自动执行restore

美高梅163888 19

自托管的包挺大的

美高梅163888 20*

发现自动生成了个netcore无后缀文件,而且是可执行文件【为基础薄弱的同志普及下:1.看颜色 2.ll 查看有没有执行权限】,直接运行就OK了

美高梅163888 21

来试着发布一个win10的:dotnet publish -c Release -r win10-x64

美高梅163888 22

拖到win10来测试~ok,可以跨平台(其他平台一样,发布的时候换下操作系统即可)

美高梅163888 23

换行输出,不换行输出:( style="background-color: #ffff00;">n使用这个就不说了,它们和C都是一样的)

python: style="color: #ff6600;">print("dnt.dkill.net/now",end='') style="color: #008000;">#默认end='n' (' 和 " 随意)

美高梅163888 24

netcore: Console. style="color: #ff6600;">Write Console. style="color: #ff6600;">WriteLine

美高梅163888 25


python输出多个重复字符,不需要自己手打N个*或者for循环输出多个重复字符,eg: style="color: #ff6600;">print("x"*10)

美高梅163888 26

style="color: #ff0000;">如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串

# %c    字符
# %s    通过str() 字符串转换来格式化
# %o    八进制整数
# %x    十六进制整数(小写字母)
# %X    十六进制整数(大写字母)
# %e    指数(小写'e')
# %E    指数(大写“E”)
# %f    浮点实数
# %g    %f和%e 的简写
# %G    %f和%E的简写

下面来个输入输出的简单的案例吧:打印一张名片,Name:毒逆天,Gender:男

Python: style="color: #008000;">print("Name:%s,Gender:%s"%(name,gender))【注意引号后面没有,哦】

美高梅163888 27

NetCore: style="color: #008000;">Console.WriteLine($"Name:{name},Gender:{gender}");

美高梅163888 28

 

Jupyter排版:https://www.cnblogs.com/dotnetcrazy/p/9102030.html

跳转到Python:

在线演示:http://nbviewer.jupyter.org/github/lotapp/BaseCode/blob/master/python/notebook/1.POP/1.base/01.helloworld.ipynb

Shell:(有些人在微信公众号问我,shell怎么获取时间,我这边改了下shell代码)【其实shell方便之处在于直接执行系统命令,系统获取时间:date,那shell加一行即可】

 python定义变量比较牛逼,直接写变量名即可,句子后面不用加分号,eg: style="color: #ff6600;">name="小明"

美高梅163888 29

netcore,可以用var来进行类型推断,eg: style="color: #ff6600;">var name="小明";

美高梅163888 30

以前开发环境都是Win10或者Win系列,后来Net跨平台了,慢慢的开发专用笔记本也换成了Ubuntu,关于Linux基础和环境等就不说了,可以看我以前写的文章()

Linux基本上还用的惯,之前开发工具突然间从VS变成了JetBrains Rider (Netcore的Console程序在linux下有时候有些莫名错误,所以才搭上了Rider)和 VSCode,陡然间稍有不适,用了几天就熟悉了。所以开发相关的Linux基本上和Win差不多

关键是日常比较蛋疼,贴个常用deb安装包, 这个就不细说了可以参考我以前在Ubuntu16.04上发的文章(),截图自带的勉强能用Alt+PrtScr,用不惯可以用国产deepin-screenshot或者用hotshots也行。 style="background-color: initial;">播放器可以自己安装一下:sudo apt-get  install  smplayer

其他的其实也没啥了,文档有WPS,音乐有网易云,输入法有搜狗,词典可以选择有道,浏览器反正谷歌嘛。暂时不需要Linux版的录屏软件(有好的可以推荐哦~)【记得我前面讲dock的时候提过一款()】

回头可能考虑再开发一个水印工具,以前开发的用惯了:

1.注释

 其实核心代码都差不多,几句话解决

import os
import time


while True: print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) time.sleep(600) os.system("notify-send 友情提醒 10分钟过去了")

美高梅163888 31

美高梅163888 32

运行(其实你可以自己把他设置为可执行程序【 style="color: #ff6600;">chmod +x ./task.py】,这样在终端中直接./task.py就运行了)

style="color: #ff0000;">新增补充:记得py文件前面加上: style="color: #ff0000;">#!/usr/bin/env python3 

美高梅163888 33

python: style="color: #ff6600;">#注释一行三个单引号或者三个双引号注释多行: style="color: #008000;">'''XXX style="color: #008000;">'''或者 style="color: #008000;">"""XXXX style="color: #008000;">"""(一般用#就够了,有点像shell脚本的感觉)

python输出就直接print即可,C是printf(不要搞混哦)

美高梅163888 34

C、Java、Net都是 style="color: #ff6600;">//注释一行,/**/注释多行

美高梅163888 35

这次轮到Python了

0.命名规则

平时经常用定时提醒来提高工作效率,到了Linux。。。。蒙圈了,以前C#写的不能跨平台啊,于是就有了这篇文章~(有些人喜欢用番茄工作法,这个算是个福利了)

复习C#基础请看附录2:https://www.cnblogs.com/dotnetcrazy/p/9102030.html#csharp

汇总系列:

 直接来个案例:

python里面没有++ 和 --,这点的确用的有点小不方便,扩展部分有相关说明

美高梅163888 36

netcore

美高梅163888 37

 

郑重声明:本文版权归美高梅163888所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。