您的位置:新葡亰496net > 电脑系统 > 新葡亰496net基础语法对比,经典面试题及答案

新葡亰496net基础语法对比,经典面试题及答案

发布时间:2019-11-24 07:15编辑:电脑系统浏览(196)

    Jupyter最新制版:

    Jupyter最新版:https://www.cnblogs.com/dotnetcrazy/p/9155310.html

    汇聚系列:

    1:委托和事件   

    如果在为情势注明参数时未选取 ref 或 out,则该参数能够具有关联的值。能够在点子中改良该值,但当调整传递回调用经过时,不会保留修改的值。通过使用方法参数关键字,能够转移这种作为。

    style="color: #3366ff;">明儿早上最初写大纲做demo,前几日舍身晚上安息时间码文大器晚成篇,希望大家点点赞O(∩_∩)O

    NetCore: style="color: #008000;">https://github.com/lotapp/BaseCode/tree/master/netcore/1_POP/6func

    Python: style="color: #008000;">https://github.com/lotapp/BaseCode/tree/master/python/1.POP/4.func_IO

    在线演示: style="color: #008000;">http://nbviewer.jupyter.org/github/lotapp/BaseCode/tree/master/python/notebook/1.POP/4.func

    style="color: #008000;">在线编制程序

    重大是布满一下Python幼功语法,比较着Net,生手更便于上手。比较学习很有趣的,非常是风度翩翩对底层和笔触

    当然感到函数要说的地点相当少,细细大器晚成布署,开掘~依旧独立拉出豆蔻梢头篇说说啊,之后就进去面向对象了,函数照旧有必要领悟一下的,不然届期候Class里面包车型大巴方法概念又要说了。

    亲自去做的格局一向在变,刚带头让我们听得多了就能说的清楚一下 style="color: #ff6600;">VSCode,后来引进了 style="color: #008000;">ipython交互作用式编制程序的定义,今后就用今日讲的 style="color: #ff0000;">Notebook来演示了(VSCode以往也可能有那几个预览版的插件了卡塔 尔(阿拉伯语:قطر‎

    在线演示: style="color: #008000;">http://nbviewer.jupyter.org/github/lotapp/BaseCode/blob/master/python/notebook/1.POP/3.list_tuple_dict

    更新: style="color: #ff0000;">新增Python可变Tuple、List切片、Set的扩展:https://www.cnblogs.com/dotnetcrazy/p/9155310.html#extend 

    前几天说说List和Tuple以至Dict。POP部分还应该有意气风发部分如Func、IO(也能够放OOP部分说卡塔 尔(英语:State of Qatar)然后就说说面向对象吧。

    先调侃一下:Python面向对象真心供给正式,不然太轻便走火入魔了 -_-!!! 汗,后一次加以。。。

    比较写作真的比单写累超多,希望大家多捧捧场 ^_^

    Jupyter排版:https://www.cnblogs.com/dunitian/p/9119986.html

    新葡亰496net 1 //事件类
    新葡亰496net 2    public class EventClass
    新葡亰496net 3新葡亰496net 4    新葡亰496net 5{
    新葡亰496net 6        public void display(object sender, System.EventArgs e)
    新葡亰496net 7新葡亰496net 8        新葡亰496net 9{
    新葡亰496net 10            Console.WriteLine("This is the Event Class");
    新葡亰496net 11            Console.ReadLine();
    新葡亰496net 12        }
    新葡亰496net 13    }
    新葡亰496net 14    //调用类
    新葡亰496net 15    class InvokeClass
    新葡亰496net 16新葡亰496net 17    新葡亰496net 18{
    新葡亰496net 19        //声大顺理对象,注意参数
    新葡亰496net 20        public delegate void delegateobj(object sender, System.EventArgs e);
    新葡亰496net 21        //评释事件目的 
    新葡亰496net 22        private event delegateobj obj;
    新葡亰496net 23        //证明要调用的事件类对象
    新葡亰496net 24        private EventClass ec;
    新葡亰496net 25
    新葡亰496net 26        public InvokeClass()
    新葡亰496net 27新葡亰496net 28        新葡亰496net 29{
    新葡亰496net 30            ec = new EventClass();
    新葡亰496net 31            //增添事件指标到事件队列中,参数为要调用的风云
    新葡亰496net 32            this.obj  = new delegateobj(ec.display);
    新葡亰496net 33        }
    新葡亰496net 34        //调用delegate对象触发事件
    新葡亰496net 35        protected void OnObj(System.EventArgs e)
    新葡亰496net 36新葡亰496net 37        新葡亰496net 38{
    新葡亰496net 39            if (this.obj != null)
    新葡亰496net 40新葡亰496net 41            新葡亰496net 42{
    新葡亰496net 43                obj(this, e);
    新葡亰496net 44            }
    新葡亰496net 45        }
    新葡亰496net 46        public void RaiseEvent()
    新葡亰496net 47新葡亰496net 48        新葡亰496net 49{
    新葡亰496net 50            EventArgs e = new EventArgs();
    新葡亰496net 51            OnObj(e);
    新葡亰496net 52        }
    新葡亰496net 53        static void Main(string[] args)
    新葡亰496net 54新葡亰496net 55        新葡亰496net 56{
    新葡亰496net 57            InvokeClass ic = new InvokeClass();
    新葡亰496net 58            Console.WriteLine("Please input a string");
    新葡亰496net 59            string input = Console.ReadLine();
    新葡亰496net 60            if (input.Equals(""))
    新葡亰496net 61新葡亰496net 62            新葡亰496net 63{
    新葡亰496net 64                Console.WriteLine("Sorry,you don't input anything");
    新葡亰496net 65            }
    新葡亰496net 66            else
    新葡亰496net 67新葡亰496net 68            新葡亰496net 69{
    新葡亰496net 70                //触发事件
    新葡亰496net 71                ic.RaiseEvent();
    新葡亰496net 72            }
    新葡亰496net 73        }
    新葡亰496net 74    }

    params

    params 关键字能够内定在参数数目可变处采取参数的法门参数。

    1. 在艺术表明中的 params 关键字之后不允许任何其余参数,况兼在措施注脚中只允许三个 params 关键字。

    示例:

    字面意思相比较难懂,所以看示例很有用。

    新葡亰496net 75新葡亰496net 76 id="Code_Closed_Text_121923" class="cnblogs_code_Collapse">Code id="Code_Open_Text_121923">
    // style="color: #008000;"> keywords_params.cs style="color: #008000;">

    using style="color: #000000;"> System;

    class style="color: #000000;"> App
    {
        public style="color: #000000;">  style="color: #0000FF;">static style="color: #000000;">  style="color: #0000FF;">void style="color: #000000;"> UseParams( style="color: #0000FF;">params style="color: #000000;">  style="color: #0000FF;">object style="color: #000000;">[] list)
        {
            for style="color: #000000;"> ( style="color: #0000FF;">int style="color: #000000;"> i  style="color: #000000;">= style="color: #000000;">  style="color: #800080;">0 style="color: #000000;">; i  style="color: #000000;">< style="color: #000000;"> list.Length; i style="color: #000000;"> )
            {
                Console.WriteLine(list[i]);
            }
        }

        static style="color: #000000;">  style="color: #0000FF;">void style="color: #000000;"> Main()
        {
            // style="color: #008000;"> 日常做法是先构造三个目标数组,然后将此数组作为艺术的参数 style="color: #008000;">
             style="color: #0000FF;">object style="color: #000000;">[] arr  style="color: #000000;">= style="color: #000000;">  style="color: #0000FF;">new style="color: #000000;">  style="color: #0000FF;">object style="color: #000000;">[ style="color: #800080;">3 style="color: #000000;">] {  style="color: #800080;">100 style="color: #000000;">,  style="color: #800000;">' style="color: #800000;">a style="color: #800000;">' style="color: #000000;">,  style="color: #800000;">" style="color: #800000;">keywords style="color: #800000;">" };
            UseParams(arr);

            // style="color: #008000;"> 而使用了params修饰方法参数后,大家得以从来利用风流浪漫组对象作为参数
            // style="color: #008000;"> 当然这组参数需求切合调用的格局对参数的渴求 style="color: #008000;">
            UseParams( style="color: #800080;">100 style="color: #000000;">,  style="color: #800000;">' style="color: #800000;">a style="color: #800000;">' style="color: #000000;">,  style="color: #800000;">" style="color: #800000;">keywords style="color: #800000;">");

            Console.Read();
        }
    }

    一向跳到增添类别:https://www.cnblogs.com/dotnetcrazy/p/9175950.html#ext

    步向扩张:https://www.cnblogs.com/dotnetcrazy/p/9155310.html#ext

    在线浏览:http://nbviewer.jupyter.org/github/lotapp/BaseCode/tree/master/python/notebook/1.POP/2.str

          
          2:遍历页面中负有的TextBox,交将值设置成"a"       

    ref

    ref 关键字使参数按援引传递。其效能是,当调整权传递回调用艺术时,在格局中对参数所做的别的更动都将体今后该变量中。

    1. 若要使用 ref 参数,则方法定义和调用方法都必得显式使用 ref 关键字。
    2. 传递到 ref 参数的参数必得首先早先化。那与 out 分裂,out 的参数在传递此前没有须求显式开始化。
    3. 质量不是变量,由此不能够看做 ref 参数字传送递。
    4. 固然 ref 和 out 在运作时的管理格局区别,但它们在编写翻译时的管理情势是千篇大器晚成律的。由此,如若四个艺术应用 ref 参数,而另二个方式运用 out 参数,则无从重载那多少个措施。比方,从编写翻译的角度来看,以下代码中的八个艺术是完全相符的。倘若尝试那样做,将促成无法编写翻译该代码。
    5. 借使八个办法运用 ref 或 out 参数,而另一个主意不利用这两类参数,则足以开展重载。

    示例:

    按援用传递值类型是有效的,不过 ref 对于传递援用类型也是很有用的。那允许被调用的法子修改该援引所援用的指标,因为引用作者是按引用来传递的。

    新葡亰496net 77 style="color: #008000;">// style="color: #008000;"> keywords_ref.cs style="color: #008000;">
    新葡亰496net 78 style="color: #000000;">
    新葡亰496net 79 style="color: #0000ff;">using style="color: #000000;"> System;
    新葡亰496net 80
    新葡亰496net 81 style="color: #0000ff;">class style="color: #000000;"> App
    新葡亰496net 82新葡亰496net 83 id="Codehighlighter1_45_444_Closed_Text" style="background-color: #ffffff; display: none; border: #808080 1px solid;">新葡亰496net 84 id="Codehighlighter1_45_444_Open_Text"> style="color: #000000;">{
    新葡亰496net 85     style="color: #0000ff;">public style="color: #000000;">  style="color: #0000ff;">static style="color: #000000;">  style="color: #0000ff;">void style="color: #000000;"> UseRef( style="color: #0000ff;">ref style="color: #000000;">  style="color: #0000ff;">int i)
    新葡亰496net 86新葡亰496net 87     id="Codehighlighter1_92_157_Closed_Text" style="background-color: #ffffff; display: none; border: #808080 1px solid;">新葡亰496net 88 id="Codehighlighter1_92_157_Open_Text"> style="color: #000000;">{
    新葡亰496net 89        i  style="color: #000000;"> = style="color: #000000;">  style="color: #000000;">100;
    新葡亰496net 90        Console.WriteLine( style="color: #000000;">" style="color: #000000;">i = {0} style="color: #000000;">", i);
    新葡亰496net 91    } style="color: #000000;">
    新葡亰496net 92
    新葡亰496net 93     style="color: #0000ff;">static style="color: #000000;">  style="color: #0000ff;">void style="color: #000000;"> Main()
    新葡亰496net 94新葡亰496net 95     id="Codehighlighter1_187_442_Closed_Text" style="background-color: #ffffff; display: none; border: #808080 1px solid;">新葡亰496net 96 id="Codehighlighter1_187_442_Open_Text"> style="color: #000000;">{
    新葡亰496net 97         style="color: #0000ff;">int style="color: #000000;"> i  style="color: #000000;">= style="color: #000000;">  style="color: #000000;">10;
    新葡亰496net 98
    新葡亰496net 99         style="color: #008000;">// style="color: #008000;"> 查看调用方法早前的值 style="color: #008000;">
    新葡亰496net 100 style="color: #000000;">        Console.WriteLine( style="color: #000000;">" style="color: #000000;">Before the method calling: i = {0} style="color: #000000;">", i);
    新葡亰496net 101
    新葡亰496net 102        UseRef( style="color: #0000ff;">ref i);
    新葡亰496net 103
    新葡亰496net 104         style="color: #008000;">// style="color: #008000;"> 查看调用方法之后的值 style="color: #008000;">
    新葡亰496net 105 style="color: #000000;">        Console.WriteLine( style="color: #000000;">" style="color: #000000;">After the method calling: i = {0} style="color: #000000;">", i);
    新葡亰496net 106        Console.Read();
    新葡亰496net 107    } style="color: #000000;">
    新葡亰496net 108} style="color: #000000;">
    新葡亰496net 109
    新葡亰496net 110新葡亰496net 111 id="Codehighlighter1_447_535_Closed_Text" style="background-color: #ffffff; display: none; border: #808080 1px solid;">/**/ id="Codehighlighter1_447_535_Open_Text"> style="color: #008000;">/*
    新葡亰496net 112控制台出口:
    新葡亰496net 113Before the method calling : i = 10
    新葡亰496net 114i = 110
    新葡亰496net 115After the method calling: i = 110
    新葡亰496net 116 style="color: #008000;">*/

    先从函数定义说起吧:

    步向正题:

    事先声多美滋(Dumex卡塔尔下,幸免让新手步入误区:不是说Python比NetCore要好,而Python设计的指标就是==》让技士解放出来,不要过分关怀代码本身,那么品质、标准等等各地方隐患就存在了,前面编写叁个多少大点的花色就看出来了。何况不要太受语言限定,在此以前本身也说过,用各自语言的优势来为项目服务~ 这才是付出王道。例如Python用来数量深入剖判,Go用来出现处理等等,十分的少说了,记住一句话就可以: style="color: #ff6600;">“Net是性能与价格之间比最高的”

    style="color: #ff6600;">新葡亰496net 117

    新葡亰496net 118for (int j = 0; j < this.Controls.Count; j )
    新葡亰496net 119新葡亰496net 120            新葡亰496net 121{
    新葡亰496net 122                foreach (object o in Page.Controls[j].Controls)
    新葡亰496net 123新葡亰496net 124                新葡亰496net 125{
    新葡亰496net 126                   
    新葡亰496net 127                    if (o is TextBox)
    新葡亰496net 128新葡亰496net 129                    新葡亰496net 130{
    新葡亰496net 131                        TextBox txt = (System.Web.UI.WebControls.TextBox)o;
    新葡亰496net 132                        txt.Text = "A";
    新葡亰496net 133                    }
    新葡亰496net 134                   
    新葡亰496net 135                }
    新葡亰496net 136            }

    out

    out 关键字会招致参数通过引用来传递。那与 ref 关键字相近。

    与 ref 的分化之处:

    1. ref 要求变量必需在传递以前行行初步化。
    2. 就算作为 out 参数字传送递的变量无需在传递早前开展开始化,但供给调用方法以便在点子重返之前赋值。

    示例:

    与 ref 示例不等的地点即使将 ref 改为 out,然后变量 i 仅供给申明就可以。

    static style="color: #000000;">  style="color: #0000ff;">void style="color: #000000;"> Main()
    {
        // style="color: #008000;">int i = 10; 改为 style="color: #008000;">
         style="color: #0000ff;">int i;
        // style="color: #008000;">新葡亰496net 137 style="color: #008000;">
    }

    本篇内容参考MSDN文档。


    至于params 关键字的通晓:

    看之下代码:

     

    新葡亰496net 138新葡亰496net 139Code
        class Program
        {
            static void Main(string[] args)
            {
                int[] a = { 0, 1, 2, 3, 4, 5 };
                output(a);
                Console.WriteLine(a[0]);
                output2(a);
                Console.WriteLine(a[0]);
                int a1 = 1, a2 = 2, a3 = 3;
                output(a1, a2, a3);
                Console.WriteLine(a1);
            }

            public static void output(params int[] list)
            {
                list[0] = 200;
                foreach (int item in list)
                    Console.WriteLine(item);
            }

            public static void output2(int[] list)
            {
                list[0] = 100;
                foreach (int item in list)
                    Console.WriteLine(item);
            }
        }   

     

    输出:

    200 <--------在函数output(params int[] list)中修改list[0]
    1
    2
    3
    4
    5
    200 <--------原a[0]被修改
    100 <--------在函数output2(int[] list)中修改list[0]
    1
    2
    3
    4
    5
    100 <--------原a[0]被修改
    200 <--------在函数中output(params int[] list)修改list[0]
    2
    3
    1 <--------原a1被修改

     

    看得出,异常的大程度上,params只是提供了另风华正茂种编码风格。其实和用数组作为参数本质上等同,微软在.NET Framework中总喜欢用各类方式来做相近件职业。

    可是须求介意的是,以params传进的非数组变长参数是以不常对象的格局贮存的,是值传递,不会被函数校订;数组参数则是援用传递方式。

    # style="color: #ff6600;">定义二个空函数:(不写pass就报错了卡塔尔

    新葡亰496net 140


    #  style="color: #ff6600;">概念二个无参函数潜心缩进

    新葡亰496net 141


    概念一个含参函数

    新葡亰496net 142

    扩:文书档案表达用""" 只怕'''来定义,就是之类效果

    新葡亰496net 143


    #  style="color: #ff6600;">概念叁个含默许参数(缺省参数)的函数

    新葡亰496net 144

    # 定义有重返值的函数

    新葡亰496net 145


    # style="color: #ff6600;">定义含有八个重返值的函数(利用了元组卡塔尔

    新葡亰496net 146

    来个案例解释一下:(多重返值只是意气风发种假象,Python函数重返的如故是纯净值~元组卡塔尔国

    新葡亰496net 147


    style="color: #ff00ff;">传七个参数种类:(上边相当多重返参数也足以回到叁个list来落到实处相通功效)

    style="color: #ff6600;">援引传递(通过元组、列表完毕卡塔尔国**增添有可变类型和不可变类型作为形参的对照

    新葡亰496net 148


    # style="color: #ff6600;">定义三个可变参数的函数(参数名字一般都以 style="color: #ff6600;">*args)

    新葡亰496net 149

    假诺你须求传一个元组恐怕列表进去的话,能够参数前边加 style="color: #ff6600;">*

    新葡亰496net 150

    # style="color: #ff6600;">定义含关键字参数的函数:def default_kv_params(name,age=23, style="color: #ff6600;">**kv):

    # 可变参数允许你传入0个或随便个参数,那些可变参数在函数调用时自动组装为一个tuple
    # 关键字参数允许你传入0个或专擅个含key-value的参数,自动组装为三个dict

    新葡亰496net 151

    来个综合案例:def default_god_params(name,age=23,*args,**kv):

    新葡亰496net 152

    亟需小心py里面包车型客车书写格式==》 style="color: #ff6600;">先定义再调用(Code参考)

    新葡亰496net 153


    style="color: #008000;">NetCore:(C#底子语法大家都很熟了,笔者贴三个申明的Code就能够卡塔尔国

    style="color: #ff6600;">VSCode里面尽管也想像VS相符,///就生成注释==》请安装函数文书档案注释: style="color: #ff0000;">XML Documentation Comments

    using System;
    using System.Collections.Generic;
    


    namespace _6func { class Program { static void Main(string[] args) {

                #region Base
                // # 定义一个空函数:
                Method();
                // # 定义一个无参函数
                GetName();
                // # 定义一个含参函数
                ShowInfos("李四", 22);
                // # 定义一个含默认参数(缺省参数)的函数
                DefaultParam("张三");
                // # 定义有返回值的函数
                int result = DivHaveReturn(1, 2);
                Console.WriteLine($"计算结果为{result}");
                #endregion
    


    // # 定义含有四个再次来到值的函数(利用了元组卡塔 尔(英语:State of Qatar) var (sum, dvalue) = DivHaveReturns(1, 2); Console.WriteLine($"sum:{sum},D-value:{dvalue}");
    // 传多个参数种类: // 援用传递(通过元组、列表完毕卡塔尔:扩充有可变类型和不足变类型作为形参的相比 var list = new List() { 1, 2, 3, 4, 5 }; Console.WriteLine(DefaultSomeParams(list)); Console.WriteLine(list.Count);//那就是援用传递的注解
    // # 定义叁个可变参数的函数(参数名字日常都以*args) Console.WriteLine(DefaultParams(1, 2, 3, 4, 5));
    // # 定义含关键字参数的函数 间接传Dict }

            #region base
            /// <summary>
            /// 定义一个空函数
            /// </summary>
            private static void Method()
            {
    


    } ///

    /// 定义一个无参函数 /// // private static void GetName() // { // Console.WriteLine("你好"); // } //简写 private static void GetName() => Console.WriteLine("你好");
    /// /// 定义一个含参数的函数 /// /// 名字 /// 年龄 // private static void ShowInfos(string name, int age) // { // Console.WriteLine($"作者叫{name} 我的年龄是{age}"); // } //简写 private static void ShowInfos(string name, int age) => Console.WriteLine($"作者叫{name} 作者的年龄是{age}");
    /// /// 定义一个含缺省参数的函数 /// /// 名字 /// 年龄默认23 // private static void DefaultParam(string name, int age = 23) // { // Console.WriteLine($"笔者叫{name} 笔者的年龄是{age}"); // } //简写 private static void DefaultParam(string name, int age = 23) => Console.WriteLine($"小编叫{name} 小编的年龄是{age}");
    /// /// 定义一个有返回值的函数(计算a b,返回计算结果) /// /// num1 /// num2 // private static int DivHaveReturn(int a, int b) // { // return a b; // } //简写 private static int DivHaveReturn(int a, int b) => a b;

            #endregion
    


    ///

    /// 定义含有多个返回值的函数(利用了元组) /// 计算a b的和,计算a-b,并返回两个结果 /// /// /// /// // private static (int sum,int dValue) DivHaveReturns(int a, int b) // { // return ((a b),(a-b)); // } //简写 private static (int sum, int dValue) DivHaveReturns(int a, int b) => ((a b), (a - b));

            #region 传入多个参数系列
            /// <summary>
            /// 利用列表实现,引用传递之类的C#还有ref和out,这边就不说了
            /// </summary>
            /// <param name="nums"></param>
            /// <returns></returns>
            private static int DefaultSomeParams(List<int> numList)
            {
                int sum = 0;
                foreach (var item in numList)
                {
                    sum  = item;
                }
                numList.Clear();
                return sum;
            }
            /// <summary>
            /// 定义一个可变参数的函数
            /// </summary>
            /// <param name="args"></param>
            /// <returns></returns>
            private static int DefaultParams(params int[] args)
            {
                int sum = 0;
                foreach (var item in args)
                {
                    sum  = item;
                }
                return sum;
            }
            #endregion
        }
    }
    

    步入正题:迎接提议更简便易行或许效能更加高的主意

           
            3  常用排序算法           

    函数相关增添

     1.列表有关:

    底子体系:(这边重视说说Python,上次讲过的事物自个儿就一笔带过了卡塔 尔(英语:State of Qatar)

    新葡亰496net 154新葡亰496net 155 /**//// 
    新葡亰496net 156        /// /冒泡排序
    新葡亰496net 157        /// 
    新葡亰496net 158        private void BubbleSort()
    新葡亰496net 159新葡亰496net 160        新葡亰496net 161{
    新葡亰496net 162            //冒泡排序
    新葡亰496net 163新葡亰496net 164            int[] list = new int[5] 新葡亰496net 165{ 111, 12, 223, 854, -5655 };//初步化数组
    新葡亰496net 166            int i, j, temp;
    新葡亰496net 167            for (j = 1; j < list.Length; j )
    新葡亰496net 168新葡亰496net 169            新葡亰496net 170{
    新葡亰496net 171                for (i = 0; i < list.Length - j; i )
    新葡亰496net 172新葡亰496net 173                新葡亰496net 174{
    新葡亰496net 175                    if (list[i] > list[i   1])
    新葡亰496net 176新葡亰496net 177                    新葡亰496net 178{
    新葡亰496net 179                        temp = list[i];
    新葡亰496net 180                        list[i] = list[i   1];
    新葡亰496net 181                        list[i   1] = temp;
    新葡亰496net 182                    }
    新葡亰496net 183                }
    新葡亰496net 184
    新葡亰496net 185            }
    新葡亰496net 186            
    新葡亰496net 187
    新葡亰496net 188        }
    新葡亰496net 189新葡亰496net 190        /**//// 
    新葡亰496net 191        /// 选取排序
    新葡亰496net 192        /// 
    新葡亰496net 193        private void SelectSort()
    新葡亰496net 194新葡亰496net 195        新葡亰496net 196{
    新葡亰496net 197            //选取排序
    新葡亰496net 198新葡亰496net 199            int[] a = new int[5] 新葡亰496net 200{ 111, 12, 223, 854, -5655 };//初步化数组
    新葡亰496net 201            int min, min_k;//定义最小数,和渺小数的下标
    新葡亰496net 202            for (int i = 0; i < 5; i )
    新葡亰496net 203新葡亰496net 204            新葡亰496net 205{
    新葡亰496net 206                min = a[i];//将眼下轮回的数设置成最小数
    新葡亰496net 207                min_k = i;
    新葡亰496net 208                for (int j = i   1; j < 5; j )
    新葡亰496net 209新葡亰496net 210                新葡亰496net 211{
    新葡亰496net 212
    新葡亰496net 213                    if (a[j] < min)
    新葡亰496net 214新葡亰496net 215                    新葡亰496net 216{
    新葡亰496net 217                        min = a[j];
    新葡亰496net 218                        min_k = j;
    新葡亰496net 219                        int tem = a[min_k];
    新葡亰496net 220                        a[min_k] = a[i];
    新葡亰496net 221                        a[i] = tem;
    新葡亰496net 222
    新葡亰496net 223
    新葡亰496net 224                    }
    新葡亰496net 225
    新葡亰496net 226
    新葡亰496net 227                }
    新葡亰496net 228
    新葡亰496net 229
    新葡亰496net 230            }
    新葡亰496net 231
    新葡亰496net 232        }

    style="color: #ff0000;">1.递归函数:函数递归调用其实正是友善调用本人,关键点只要寻思如何时候跳出就可以(未有跳出就是死循环)

    先来个轻松的案例熟知一下:

    新葡亰496net 233

    来个案例(实际专门的职业中并不会和煦定义,用系统自带 style="color: #ff6600;">strip格局就可以)

    新葡亰496net 234

    C#的递归我就引述一下从前的Code:https://github.com/dunitian/LoTCodeBase/blob/master/NetCode/1.面向进度/01.底工/10.递归案例/Program.cs

    新葡亰496net 235


    2.无名氏函数多级: style="color: #008000;">lambda 参数: 表明式

    新葡亰496net 236

    来个经常用的案例:data_list.sort(key=lambda x:x["key"])

    新葡亰496net 237

    还应该有三个比较常用的地点:(当参数字传送递

    新葡亰496net 238

    NetCore:上面Code中的简写都是用无名氏函数的方法,能够参照


    3.全局变量和部分变量 

    有人可能会说,那个就太轻便了,没啥好说的,(⊙o⊙)… Python还真必要说说,来个案例给您猜结果:

    新葡亰496net 239

    直白看结果吗:开采大局变量a木有被校勘,而b修正了

    新葡亰496net 240

    要么来个大致案例表明下吧~

    新葡亰496net 241

    # 这是因为,python定义四个变量的写法不用加类型导致的(⊙﹏⊙) 所以 style="color: #008000;">函数里面a=200,python解释器就感到你定义了一个和a这几个全局变量名字相符的部分变量,那怎么用吧? style="color: #ff0000;">global来声称一下全局变量即可:

    新葡亰496net 242

    总结:

    # 在函数中不行使 style="color: #ff0000;">global注明全局变量不可能改过全局变量==>本质是无法改改全局变量的针对性,即不可能将全局变量指向新的数目

    # 对于不可变类型的全局变量来讲,因其指向的数目不能够改改,所以不使用global时不可能改过全局变量

    # 对于可变类型的全局变量来讲,因其指向的数额能够改革,所以不接受global时也可更正全局变量


    style="color: #008000;">上边就进去验证扩张体系,看看一些定义

    # 从前比较多素材说py3无名函数里无法调用print函数,自身测验下

    新葡亰496net 243


    # 可变类型与不足变类型的变量分别作为函数参数的区分

    # 认为思疑能够看前面包车型地铁运算符扩张()

    新葡亰496net 244

    # Python中函数参数都以援引传递
    # 对于不得变类型,因变量不能够修改,所以运算不会潜移暗化到变量本人
    # 而对于可变类型来讲,函数体中的运算有十分的大概率会转移传入的参数变量


    # 函数名能或不能够重复的难题(能不能 style="color: #008000;">重载:具备差别的参数的项目或参数的个数【跟重临值不妨】

    新葡亰496net 245

    敲定:函数名不可能重名


    来五个有意思的强大

    style="color: #ff6600;">1.换到多少个数了解吧,编制程序第生机勃勃课,除了用其三变量 或者 两数相加减 达成外,Python还会有大器晚成种新方式 style="color: #ff0000;">a,b=b,a

    新葡亰496net 246

    NetCore:那些本人也是刚知道,O(∩_∩)O哈哈~还得谢谢商议区的弟兄^_^

    新葡亰496net 247


     2. style="color: #ff6600;">eval(和js里面的eval大约卡塔 尔(英语:State of Qatar): style="color: #008000;">不太建议利用

     新葡亰496net 248

    style="color: #ff6600;">Python定义三个列表(列表尽管能够存分裂连串,日常大家把雷同档期的顺序的值存列表里面,不相同类型存字典里(key,value卡塔 尔(英语:State of Qatar)卡塔尔

    info_list=[] #空列表

    style="color: #ff6600;">infos_list=["C#","JavaScript"]

    遍历和事先同生机勃勃,for 也许 while 都得以(for扩充:)

    新葡亰496net 249

    NetCore style="color: #ff6600;">var infos_list = new List<object>() { "C#", "JavaScript" };

    遍历能够用foreach,for,while

    新葡亰496net 250


    Python列表的丰硕

    # 末尾追加 infos_list. style="color: #ff6600;">append("Java")

    #  style="color: #ff6600;">累积三个列表 infos_list. style="color: #ff6600;">extend(infos_list2)

    # style="color: #ff6600;">钦命位置插入 infos_list. style="color: #ff6600;">insert(0,"Python") 

    # 铺排列表:infos_list style="color: #ff6600;">.insert(0,temp_list) 

     看前面包车型地铁 style="color: #339966;">列表嵌套,是由此下标方式赢得,eg: infos_list[0][1]

    新葡亰496net 251

    style="color: #ff6600;">Python在钦赐地点插入列表是真的插入三个列表进去,C#是把当中的要素挨个插入进去

    新葡亰496net 252

    style="color: #ff6600;">NetCore:Add,AddRange,Insert,InsertRange (和Python插入列表有个别不同)

    新葡亰496net 253


    Python列表删除连串

    infos_list.pop() #剔除最终七个

    infos_list.pop(0) #删去钦赐索引,不真实就报错

    infos_list. style="color: #ff6600;">remove("张三")  style="background-color: initial;"># remove("")删除钦命成分 style="background-color: initial;">,不设有就报错

    新葡亰496net 254

    style="color: #ff6600;">del infos_list[1] #剔除钦点下标成分,空中楼阁就报错

    del infos_list #剔除集结(集结再拜会就不设有了卡塔 尔(阿拉伯语:قطر‎不相同于C#给集结赋null

    新葡亰496net 255

    再过贰回新葡亰496net 256

    style="color: #ff6600;">NetCore移除钦定索引:infos_list. style="color: #ff6600;">RemoveAt(1); 移除钦点值: infos_list. style="color: #ff6600;">Remove(item); 清空驶列车表: infos_list. style="color: #ff6600;">Clear();

    新葡亰496net 257


    style="color: #ff6600;">Python改进:(只好通过索引改革卡塔尔国

    infos_list2[1]="PHP" #唯有下标改革风流浪漫种艺术, style="background-color: initial;">不设有则特别

    # 想按值校勘须求先查下标再改正 eg:

    infos_list2.index("张三")

    infos_list2[0]="GO"

    # infos_list2.index("dnt")#不设有则特别

    style="color: #000000;">新葡亰496net 258

    # 知识面拓宽:

    # 为何python中不建议在for循环中改革列表?

    # 由于在遍历的进程中,删除了中间多个要素,引致前边的成分全体前移,引致有个因素成了担惊受怕。

    # 相近的,在遍历进度中,使用插入操作,也会招致相像的错误。这也正是主题素材里说的力不能支“追踪”成分。

    # 若是采取while,则足以在面前遇到如此意况的时候灵活应对。

    NetCore:基本上和Python相像

    新葡亰496net 259


    style="color: #ff6600;">Python查询类别:in, not in, index, count

    if "张三" in names_list:

      names_list.remove("张三")

    if "大舅子" not in names_list:

      names_list.append("大舅子")

    names_list.index("王二麻子")

    names_list.count("逆天")

    style="color: #000000;">新葡亰496net 260

    NetCore: style="color: #008000;">IndexOf , style="color: #008000;">Count

    新葡亰496net 261

    查找用 style="color: #008000;">Contains,别的的先看看,前边会讲

    新葡亰496net 262


    Python排序 style="background-color: initial;"> 

    num_list.reverse()  style="background-color: initial;"># 倒序

    num_list.sort()  style="background-color: initial;"># 从小到大排序

    num_list. style="color: #ff6600;">sort(reverse=True)  style="background-color: initial;"># 从大到小

    新葡亰496net 263

    style="color: #ff6600;">列表嵌套,获取用下标的章程: style="color: #ff6600;">num_list[5][1]

    新葡亰496net 264

    NetCorevar num_list2 = new List<object>() { 33, 44, 22, style="color: #008000;">new List<object>(){11,55,77} };

    不能够像python那样下标操作,能够定义多维数组来辅助 num_list2[i][j] (PS,其实那个嵌套不太用,未来都以列表里面套Dict,相似与Json卡塔尔国

    新葡亰496net 265

    1.出口 类型调换

    Python写法:

    新葡亰496net 266

    NetCore:

    新葡亰496net 267

    2.字符串拼接 style="background-color: initial;">拼接出口格局

    python:

    新葡亰496net 268

    NetCore

    新葡亰496net 269

    3.字符串遍历、下标、切丝

    非常重要说下python的 style="color: #ff0000;">下标,有一点点意思,最终贰个成分,大家常常都是len(str)-1,他得以平昔用-1,倒2自然正是-2

    #末尾叁个因素:user_str[-1]

    user_str[-1]

    user_str[len(user_str)-1] #别的编制程序语言写法

    #倒数第一个要素: style="color: #ff0000;">user_str[-2]

    新葡亰496net 270

    本次为了越发形象相比较,一句一句翻译成NetCore(有未有察觉规律,user_str[ style="color: #ff6600;">user_str.Length-1]==》 style="color: #ff6600;">-1是最后一个,user_str[ style="color: #ff6600;">user_str.Length-2]==》 style="color: #ff6600;">-2是最终三个。python在这里方面简化了

    新葡亰496net 271

    3.2 python切开语法: style="color: #ff0000;">[start_index:end_index:step] (end_index取不到)

    # 切片:[start_index:end_index:step] (end_index取不到)
    # eg:str[1:4] 取str[1]、str[2]、str[3]
    # eg:str[2:] 取下标为2开始到最后的元素
    # eg:str[2:-1] 取下标为2~到倒数第二个元素(end_index取不到)
    # eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说)
    # eg:str[::-1] 逆向输出(案例会详细说,)
    

    来个案例:小编注释部分说的很详细了,附录会贴democode的

    新葡亰496net 272

    NetCore,其实你用Python跟其它语言比较反差更加大,net真的很有力了。补充(相比看就清楚Python的step为啥是2了,i =2==》2卡塔尔国

     新葡亰496net 273

          
           4:结构体(Struct) 和 类(Class)

     

    2.Tuple 元组

    情势层层:

          对于组织和类,初看上去都相似。都足以有本身的字段,属性,方法,仍为能够有构造函数。不过这两侧其实有异常的大的例外,何况分别有独家的选取范围。上边照旧谈谈两者的各自吗。

    先到这吗,有何样扩张的下面再贴吧~

    这一次先说 style="color: #008000;">NetCore吧:(逆天ValueTuple用的比较多,下边案例正是用的这些卡塔 尔(英语:State of Qatar)

    元组系:

    值元组:

     

    style="font-size: 15px;">C#兰月组首假使福利程序猿,不用自然能够。 style="background-color: initial;">比方:当你回到几个值是还是不是还用ref out 恐怕重临多个list之类的? style="background-color: initial;"> 那么些都亟需先定义,比较麻烦.元祖在这里些意况用的可比多。 style="background-color: initial;">先说说基本采纳:

     

    style="background-color: initial;">初始化: style="background-color: initial;">var test_tuple = ("萌萌哒", 1, 3, 5, "加息", "加息"); //这种方法正是valueTuple了(看vscode监视音讯卡塔 尔(英语:State of Qatar)

    新葡亰496net 274

    亟待说下的是,取值只好通过itemxxx来取了,然后就是 style="color: #ff6600;">valueTuple的值是足以修改的

    新葡亰496net 275

    忽略上边说的(日常不会用的卡塔尔,直接进应用项景:

    新葡亰496net 276

    就聊到这了,代码部分附录是有些

     

    style="color: #ff6600;">Python:用法基本上和列表差不离( style="color: #ff0000;">下标和近期说的用法同样,举个例子test_tuples[-1] 尾数成分卡塔 尔(阿拉伯语:قطر‎

    概念:二个因素:test_tuple1= style="color: #ff6600;">(1,)

     

    test_tuple=("萌萌哒",1,3,5,"加息","加息")

    test_tuple. style="color: #ff6600;">count("加息")

    test_tuple. style="color: #ff6600;">index("萌萌哒")  style="background-color: initial;">#没有find方法

    test_tuple.index("加息", 1, 4) #从一定岗位查找, style="background-color: initial;">左闭右开区间==>[1,4)

    新葡亰496net 277

    来说说拆包相关的,C#的地点说了,那边来个案例就可以:

    a=(1,2)

    b=a #把a的引用给b

    c,d=a #不是把a分别赋值给c和d,等价于: style="color: #ff6600;">c=a[0] d=a[1]

    新葡亰496net 278

    来个扩展吧(多维元组卡塔尔国

    some_tuples=[(2,"萌萌哒"),(4,3)]

    some_tuples[0]

    some_tuples[0][1]

    新葡亰496net 279

    # 查找:find,rfind,index,rindex

    Python查找推荐您用find和rfind

    新葡亰496net 280

    netcore:index0f就约等于python里面包车型客车find

    新葡亰496net 281


    # 计数:count

    python:str.count()

    新葡亰496net 282

    netcore:那一个真用根底来消除的话,三种情势:

    第意气风发种和煦变形一下: style="background-color: initial;">(原字符串长度 - 替换后的长度) / 字符串长度

    新葡亰496net 283

     

    style="color: #ff6600;">字符串总结另风度翩翩种格局(就用index)【点自个儿】

     

                int count = 0;
                int index = input.IndexOf("abc");
    


    while (index != -1) { count ; index = input.IndexOf("abc", index 3);//index指向abc的后一位 }

     

    Python补充表达:像这一个办法演习用ipython3就好了(sudo apt-get install ipython3卡塔尔,code的话需求二个个的print,相比辛勤(我那边因为急需写小说,所以只能一个个code卡塔尔国

    新葡亰496net 284

    index查找不到会有非常

    新葡亰496net 285


    # 替换:replace

    Python:xxx.replace(str1, str2, 替换次数)

    新葡亰496net 286

    replace能够钦定替换几遍

    新葡亰496net 287

    NetCore:替换内定次数的法力有一点业余,就不说了,你能够活动思虑哦~

    新葡亰496net 288


    style="color: #ff6600;">#连接:join:eg:print("-".join(test_list))

    style="color: #ff6600;">新葡亰496net 289

     netcore:string.Join(分隔符,数组)

    新葡亰496net 290 style="background-color: initial;"> 

    style="color: #ff6600;">#细分:split(按钦定字符分割卡塔尔,splitlines(按行分割),partition(以str分割成三有些,str前,str和str后),rpartition

    说下split的切成条用法 :print( style="background-color: #ffff99;">test_input.split(" ",3)) #在第八个空格处切成丝,前面的不切了

    新葡亰496net 291

    新葡亰496net 292

    三回九转说说 style="color: #ff6600;">splitlines(按行分割),和split("n")的界别小编图中给了案例

    扩展: style="background-color: initial; color: #ff6600;">split(),暗中同意按空字符切割(空格、t、n等等,不用顾忌重临'')

    新葡亰496net 293

    终极说一下 style="color: #ff6600;">partition style="background-color: initial;">和 style="color: #ff6600;">r style="background-color: initial;"> style="color: #ff6600;">partition 回到是元祖类型(后边会说的卡塔尔,形式和find相符,找到第三个地位卓殊的就罢工了【注意一下没找到的场馆】

    新葡亰496net 294

     

    netcore: style="background-color: initial;"> split里面非常多种载方法,能够自身去查看下,eg: style="color: #ff6600;">Split("n",StringSplitOptions.RemoveEmptyEntries)**

    再说一下这几个: style="background-color: initial;">test_str.Split('a');//再次来到数组。 style="color: #ff6600;">若是要和Python同样 style="background-color: #ffff99;">重返列表==》test_str. style="background-color: #ffff99;">Split('a').ToList(); 【必要引用linq的命名空间啊】

    新葡亰496net 295


    # 头尾判定:startswith(以。。。开始卡塔尔国,endswith(以。。。结尾卡塔 尔(阿拉伯语:قطر‎

    新葡亰496net 296

    netcore:

    新葡亰496net 297


    # 大小写系: style="color: #ff6600;">lower(字符串转换为题写), style="color: #ff6600;">upper(字符串调换为题写),title(单词首字母大写), style="color: #ff6600;">capitalize( style="background-color: #ffff99;">第三个字符大写,别的变小写)

    新葡亰496net 298

    netcore:

    新葡亰496net 299


    # 格式连串: style="color: #ff6600;">lstrip(去除右侧空格卡塔 尔(阿拉伯语:قطر‎, style="color: #ff6600;">rstrip(去除左边空格卡塔 尔(英语:State of Qatar), style="color: #ff6600;">strip(去除两侧空格卡塔 尔(阿拉伯语:قطر‎美化输出种类: style="color: #ff6600;">ljust, style="color: #ff6600;">rjust, style="color: #ff6600;">center

    style="background-color: initial;">新葡亰496net 300 style="background-color: initial;"> 

    新葡亰496net 301

     

    netcore:Tirm很有力,除了去空格还能去除你想去除的任性字符

    新葡亰496net 302

    ljust,rjust,center那个就背着了,python平常在linux终端中输出,所以那多少个用的可比多。net里面string.Format种种格式化输出,能够参见

     


    # 验证种类: style="color: #ff6600;">is阿尔法(是或不是是纯字母卡塔 尔(英语:State of Qatar), style="color: #ff6600;">isalnum(是或不是是数字|字母卡塔尔, style="color: #ff6600;">isdigit(是还是不是是纯数字卡塔尔, style="color: #ff6600;">isspace(是还是不是是纯空格卡塔 尔(英语:State of Qatar)

    一张图消除,别的的亲善去试生龙活虎试吧,注意哦~ style="color: #ff0000;"> style="background-color: initial;"> test_str5=" t n " # style="background-color: #ffff99;">isspace() ==>true

    新葡亰496net 303

     

    netcore: style="background-color: initial;">string.IsNullOrEmpty 和 string.IsNullOrWhiteSpace 是系统自带的,其余的您要求协调包裹二个恢弘类(eg:简轻松单包装)【附录有】

    新葡亰496net 304

          <1> 结构的天性和属性优势

    3.Dict系列

    附录:

          结构是值类型,继承自System.ValueType。结构相对于类来讲有五个天性上的优势,结构经常分配在栈(Stack卡塔尔国上面,类的实际上内容经常分配在堆(Heap卡塔尔国上边,访问栈的进程会比访问堆的速度越来越快。不过那实际不是二个刚烈的优势。最要紧的是栈上边的源委放出是十二分快的,常常在函数调用结束之后,栈就自动释放了;不过对于堆来说,必须等待垃圾搜罗器(Garbage Collector卡塔尔来访问,往往垃圾采摘器的工作都有向下性子,所以我们不自然那个时候就能够只顾到质量的生成,不过这种影响毕竟会展现出来。

    Python遍历相关

    #每一遍也就是取二个元组,那能够用事先讲的例证来简化了:c,d=a #等价于:c=a[0] d=a[1]

    for k,v in infos_dict.items():

      print("Key:%s,Value:%s"%(k,v))

    新葡亰496net 305 

    NetCore:方式和Python差不多

    foreach (KeyValuePair<string, object> kv in infos_dict)

    {

      Console.WriteLine($"Key:{ style="color: #ff6600;">kv.Key},Value:{ style="color: #ff6600;">kv.Value}");

    }

    新葡亰496net 306 


    Python style="background-color: initial;">增加和删除改种类:

    增加、修改 style="color: #ff6600;">infos_dict["wechat"]="dotnetcrazy style="background-color: initial;"> style="color: #ff6600;">" #有就修正,没就加多

    去除系列

    # 删除

    del infos_dict["name"] #不设有就报错

    #清空字典内容

    infos_dict.clear()

    # 删除字典

    del infos_dict

    新葡亰496net 307

    NetCore

    添加:infos_dict.Add("wechat", "lll");  infos_dict["wechat1"] = "lll";

    修改

    infos_dict["wechat"] = "dotnetcrazy";

     

    删除

    style="background-color: initial;">infos_dict.Remove("dog"); // style="color: #ff6600;">不真实不报错   style="background-color: initial;">infos_dict.Clear(); // style="color: #ff6600;">列表内容清空

    新葡亰496net 308 


    Python查询种类 style="background-color: initial;">: style="background-color: #ffff00;">推荐 style="background-color: initial;">:infos_dict. style="color: #ff6600;">get("mmd")  style="background-color: initial;">#查不到不会非常

    新葡亰496net 309


      style="color: #339966;">NetCoreinfos_dict["name"] 能够因而  style="color: #ff6600;">ContainsKey(key) 幸免十分。看值就 ContainsValue(value)

    新葡亰496net 310

    Python3:

    新葡亰496net 311新葡亰496net 312

    # #输出 类型转换
    # user_num1=input("输入第一个数:")
    # user_num2=input("输入第二个数:")
    

    # print("两数之和:%d"%(int(user_num1) int(user_num2)))
    

    # # ------------------------------------------------------------
    

    # #字符串拼接
    # user_name=input("输入昵称:")
    # user_pass=input("输入密码:")
    # user_url="192.168.1.121"
    

    # #拼接输出方式一:
    # print("ftp://" user_name ":" user_pass "@" user_url)
    

    # #拼接输出方式二:
    # print("ftp://%s:%s@%s"%(user_name,user_pass,user_url))
    

    # # -------------------------------------------------------------
    

    # # 字符串遍历、下标、切片
    # user_str="七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?"
    

    # #遍历
    # for item in user_str:
    #     print(item,end=" ")
    

    # #长度:len(user_str)
    # print(len(user_str))
    

    # #第一个元素:user_str[0]
    # print(user_str[0])
    

    # #最后一个元素:user_str[-1]
    # print(user_str[-1])
    # print(user_str[len(user_str)-1])#其他编程语言写法
    

    # #倒数第二个元素:user_str[-2]
    # print(user_str[-2])
    

    # # -------------------------------------------------------------
    

    # 切片:[start_index:end_index:step] (end_index取不到)
    # eg:str[1:4] 取str[1]、str[2]、str[3]
    # eg:str[2:] 取下标为2开始到最后的元素
    # eg:str[2:-1] 取下标为2~到倒数第二个元素(end_index取不到)
    # eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说)
    # eg:str[::-1] 逆向输出(案例会详细说,)
    


    it_str="笔者爱编制程序,编制程序爱它,它是前后相继,程序是什么人?"

    #eg:取“编程爱它” it_str[5:9]
    print(it_str[5:9])
    print(it_str[5:-11]) #end_index用-xx也一样
    print(it_str[-15:-11])#start_index用-xx也可以
    

    #eg:取“编程爱它,它是程序,程序是谁?” it_str[5:]
    print(it_str[5:])#不写默认取到最后一个
    

    #eg:一个隔一个跳着取("我编,程它它程,序谁") it_str[0::2]
    print(it_str[0::2])#step=△index(eg:0,1,2,3。这里的step=> 2-0 => 间隔1)
    

    #eg:倒序输出 it_str[::-1]
    # end_index不写默认是取到最后一个,是正取(从左往右)还是逆取(从右往左),就看step是正是负
    print(it_str[::-1])
    print(it_str[-1::-1])#等价于上一个
    

    # # -------------------------------------------------------------
    

    View Code

    新葡亰496net 313新葡亰496net 314

    test_str="ABCDabcdefacddbdf"
    

    # -------------------------------------------------------------
    

    # # 查找:find,rfind,index,rindex
    # # xxx.find(str, start, end)
    # print(test_str.find("cd"))#从左往右
    # print(test_str.rfind("cd"))#从右往左
    # print(test_str.find("dnt"))#find和rfind找不到就返回-1
    

    # # index和rindex用法和find一样,只是找不到会报错(以后用find系即可)
    # # print(test_str.index("dnt"))
    

    # # -------------------------------------------------------------
    

    # # 计数:count
    # # xxx.count(str, start, end)
    # print(test_str.count("a"))
    

    # # -------------------------------------------------------------
    

    # # 替换:replace
    # # xxx.replace(str1, str2, count_num)
    # print(test_str)
    # print(test_str.replace("b","B"))#并没有改变原字符串,只是生成了一个新的字符串
    # print(test_str)
    

    # # replace可以指定替换几次
    # print(test_str.replace("b","B",1))#ABCDaBcdefacddbdf
    

    # # -------------------------------------------------------------
    

    # 分割:split(按指定字符分割),splitlines(按行分割),,partition(以str分割成三部分,str前,str和str后),rpartition
    # test_list=test_str.split("a")#a有两个,按照a分割,那么会分成三段,返回类型是列表(List),并且返回结果中没有a
    # print(test_list)
    

    # test_input="hi my name is dnt"
    # print(test_input.split(" ")) #返回列表格式(后面会说)['hi', 'my', 'name', 'is', 'dnt']
    # print(test_input.split(" ",3))#在第三个空格处切片,后面的不管了
    

    # # 按行分割,返回类型为List
    # test_line_str="abcnbcancabn"
    # print(test_line_str.splitlines())#['abc', 'bca', 'cab']
    # print(test_line_str.split("n"))#看出区别了吧:['abc', 'bca', 'cab', '']
    

    # # 没看出来就再来个案例
    # test_line_str2="abcnbcancabnLLL"
    # print(test_line_str2.splitlines())#['abc', 'bca', 'cab', 'LLL']
    # print(test_line_str2.split("n"))#再提示一下,最后不是n就和上面一样效果
    

    # 扩展:
    # print("hi my name is dnttn  mntn".split())#split(),默认按空字符切割(空格、t、n等等,不用担心返回'')
    

    # #partition,返回是元祖类型(后面会说的),方式和find一样,找到第一个匹配的就罢工了
    # print(test_str.partition("cd"))#('ABCDab', 'cd', 'efacddbdf')
    # print(test_str.rpartition("cd"))#('ABCDabcdefa', 'cd', 'dbdf')
    # print(test_str.partition("感觉自己萌萌哒"))#没找到:('ABCDabcdefacddbdf', '', '')
    

    # # -------------------------------------------------------------
    

    # # 连接:join
    # # separat.join(xxx)
    # # 错误用法:xxx.join("-")
    # print("-".join(test_list))
    

    # # -------------------------------------------------------------
    

    # # 头尾判断:startswith(以。。。开头),endswith(以。。。结尾)
    # # test_str.startswith(以。。。开头)
    # start_end_str="http://www.baidu.net"
    # print(start_end_str.startswith("https://") or start_end_str.startswith("http://"))
    # print(start_end_str.endswith(".com"))
    # # -------------------------------------------------------------
    

    # # 大小写系:lower(字符串转换为小写),upper(字符串转换为大写),title(单词首字母大写),capitalize(第一个字符大写,其他变小写)
    # print(test_str)
    # print(test_str.upper())#ABCDABCDEFACDDBDF
    # print(test_str.lower())#abcdabcdefacddbdf
    # print(test_str.capitalize())#第一个字符大写,其他变小写
    

    # # -------------------------------------------------------------
    

    # # 格式系列:lstrip(去除左边空格),rstrip(去除右边空格),strip(去除两边空格),ljust,rjust,center
    # strip_str=" I Have a Dream "
    # print(strip_str.strip() "|")#我加 | 是为了看清后面空格,没有别的用处
    # print(strip_str.lstrip() "|")
    # print(strip_str.rstrip() "|")
    

    # #这个就是格式化输出,就不讲了
    # print(test_str.ljust(50))
    # print(test_str.rjust(50))
    # print(test_str.center(50))
    # # -------------------------------------------------------------
    

    # 验证系列:isalpha(是否是纯字母),isalnum(是否是数字|字母),isdigit(是否是纯数字),isspace(是否是纯空格)
    

    # test_str2="Abcd123"
    # test_str3="123456"
    # test_str4="  t"
    # test_str5="  t n " #isspace() ==>true
    # 一张图搞定,其他的自己去试一试吧
    # test_str.isalpha()
    # test_str.isalnum()
    # test_str.isdigit()
    # test_str.isspace()
    

    View Code

    NetCore:

    新葡亰496net 315新葡亰496net 316

    using System;
    using System.Linq;
    


    namespace aibaseConsole { public static class Program { private static void Main() {

                #region BaseCode
    


    //var test="123";//定义二个变量 // Console.WriteLine(test);//输出这么些变量 // // Console.WriteLine("请输入顾客名:"); // var name = Console.ReadLine(); //
    // Console.WriteLine("请输入性别:"); // var gender = Console.ReadLine(); //
    // Console.WriteLine($"Name:{name},Gender:{gender}"); //推荐用法 // Console.WriteLine("Name:{0},Gender:{1}", name, gender); //Old 输出 // //// 类型转换 // Console.WriteLine("输入第叁个数字:");
    // var num1 = Console.ReadLine();
    // Console.WriteLine("输入第1个数字:");
    // var num2 = Console.ReadLine(); // Console.WriteLine($"num1 num2={Convert.ToInt32(num1) Convert.ToInt32(num2)}"); //
    //// Convert.ToInt64(),Convert.ToDouble(),Convert.ToString() // Console.Write("dnt.dkill.net/now"); // Console.WriteLine("带您走进中医经络"); // // var temp = "xxx"; // var tEmp = "==="; // Console.WriteLine(temp tEmp); // var num = 9; // Console.WriteLine("num=9,上边结果是对2的除,取余,取商操作:"); // Console.WriteLine(num/2.0); // Console.WriteLine(num%2.0); // Console.WriteLine(num/2); // //指数 // Console.WriteLine(Math.Pow(2,3));
    // int age = 24; // // if (age >= 23) // Console.WriteLine("七大姑曰:工作了吗?八大妈问:买房了呢?异性说:结婚了呢?"); // else if (age >= 18) // { // Console.WriteLine(age); // Console.WriteLine("成年了哇"); // } // else // Console.WriteLine("好学不倦天天向上");
    // int i = 1; // int sum = 0; // while (i <= 100) // { // sum = i; // i ; // } // Console.WriteLine(sum);
    // var name = ""; // foreach (var i in name) // { // if(i=='#') // break; // Console.Write(i); // } // Console.WriteLine("n end ...");

                #endregion
    

                #region String
                //            //# # 字符串遍历、下标、切片
                //            //# user_str="七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?"
                //            var user_str = "七大姑曰:工作了吗?八大姨问:买房了吗?异性说:结婚了吗?";
                //
                //            //# #遍历
                //            //# for item in user_str:
                //            //#     print(item,end=" ")
                //            foreach (var item in user_str)
                //            {
                //                Console.Write(item);
                //            }
                //            
                //            //# #长度:len(user_str)
                //            //# print(len(user_str))
                //            Console.WriteLine(user_str.Length);
                //
                //            //# #第一个元素:user_str[0]
                //            //# print(user_str[0])
                //            Console.WriteLine(user_str[0]);
                //            
                //            //# #最后一个元素:user_str[-1]
                //            //# print(user_str[-1])
                //            //# print(user_str[len(user_str)-1])#其他编程语言写法
                //            Console.WriteLine(user_str[user_str.Length-1]);
                //            //
                //            //# #倒数第二个元素:user_str[-2]
                //            //# print(user_str[-2])
                //            Console.WriteLine(user_str[user_str.Length-2]);
    


    // //# # ------------------------------------------------------------- // // // //# 切片:[start_index:end_index:step] (end_index取不到) // //# eg:str[1:4] 取str[1]、str[2]、str[3] // //# eg:str[2:] 取下标为2初阶到结尾的因素 // //# eg:str[2:-1] 取下标为2~到尾数第二个成分(end_index取不到) // //# eg:str[1:6:2] 隔着取~str[1]、str[3]、str[5](案例会详细说卡塔尔 // //# eg:str[::-1] 逆向输出(案例会详细说,) // // // var it_str = "作者爱编制程序,编制程序爱它,它是前后相继,程序是哪个人?"; // // // //#eg:取“编制程序爱它” it_str[5:9] // // print(it_str[5:9]) // // print(it_str[5:-11]) #end_index用-xx也一样 // // print(it_str[-15:-11])#start_index用-xx也可以 //
    // //Substring(int startIndex, int length) // Console.WriteLine(it_str.Substring(5, 4));//第1个参数是长度 //
    // // // //#eg:取“编制程序爱它,它是前后相继,程序是什么人?” it_str[5:] // // print(it_str[5:])#不写暗中同意取到最后二个 // Console.WriteLine(it_str.Substring(5));//不写默许取到最后贰个 //
    // //#eg:二个隔一个跳着取("作者编,程它它程,序哪个人"卡塔 尔(英语:State of Qatar) it_str[0::2] // // print(itstr[0::2])#step=△index(eg:0,1,2,3。这里的step=> 2-0 => 间隔1) //
    // //那一个自家第大器晚成感应是用linq ^
    ^ // for (int i = 0; i < it_str.Length; i =2)//比较看就清除Python的step为何是2了,i =2==》2 // { // Console.Write(it_str[i]); // } //
    // Console.WriteLine("n倒序:"); // //#eg:倒序输出 it_str[::-1] // //# end_index不写私下认可是取到末了二个,是正取(从左往右卡塔 尔(阿拉伯语:قطر‎还是逆取(从右往左卡塔尔,就看step是多亏负 // // print(it_str[::-1]) // // print(it_str[-1::-1])#等价于上八个 // for (int i = it_str.Length-1; i>=0; i--) // { // Console.Write(it_str[i]); // } // //其实能够用Linq:Console.WriteLine(new string(it_str.ToCharArray().Reverse().ToArray()));

                #endregion
    

                #region StringMethod
                // var test_str = "ABCDabcdefacddbdf";
    


    // //# # 查找:find,rfind,index,rindex // //# # xxx.find(str, start, end) // //# print(test_str.find("cd"))#从左往右 // Console.WriteLine(test_str.IndexOf('a'));//4 // Console.WriteLine(test_str.IndexOf("cd"));//6
    // //# print(test_str.rfind("cd"))#从右往左 // Console.WriteLine(test_str.LastIndexOf("cd"));//11
    // //# print(test_str.find("dnt"))#find和rfind找不到就回去-1 // Console.WriteLine(test_str.IndexOf("dnt"));//-1 // //# # index和rindex用法和find相符,只是找不在场报错(以后用find系就可以) // //# print(test_str.index("dnt"))
    // //# # ------------------------------------------------------------- // //# # 计数:count // //# # xxx.count(str, start, end) // // print(test_str.count("d"))#4 // // print(test_str.count("cd"))#2 // // 第一反馈,字典、正则、linq,后来想怎么用幼功知识解决,于是有了这几个~(原字符串长度-替换后的长度)/字符串长度
    // System.Console.WriteLine(test_str.Length-test_str.Replace("d","").Length);//总结单个字符就大致了 // System.Console.WriteLine((test_str.Length-test_str.Replace("cd","").Length)/"cd".Length); // System.Console.WriteLine(test_str);//不用忧郁原字符串退换(python和C#都以有字符串不可变性的卡塔 尔(阿拉伯语:قطر‎
    // //# # ------------------------------------------------------------- // // // //# # 替换:replace // //# # xxx.replace(str1, str2, count_num) // //# print(test_str) // //# print(test_str.replace("b","B"))#并从未改观原字符串,只是生成了八个新的字符串 // //# print(test_str) // System.Console.WriteLine(test_str.Replace("b","B")); // //# # replace能够钦命替换两次 // //# print(test_str.replace("b","B",1))#ABCDaBcdefacddbdf // // 替换钦定次数的机能有一点点业余,就蒙蔽了
    // //# # -------------------------------------------------------------
    // //# 分割:split(按内定字符分割卡塔 尔(英语:State of Qatar),splitlines(按行分割),partition(以str分割成三有的,str前,str和str后),rpartition // //# test_list=test_str.split("a")#a有三个,依照a分割,那么会分成三段,重临类型是列表(List卡塔尔国,並且再次来到结果中未有a // //# print(test_list) // var test_array = test_str.Split('a');//重回数组(要是要再次来到列表==》test_str.Split('a').ToList();) // var test_input = "hi my name is dnt"; // //# print(test_input.split(" ")) #重临列表格式(前边会说卡塔 尔(阿拉伯语:قطر‎['hi', 'my', 'name', 'is', 'dnt'] // test_input.Split(" "); // //# print(test_input.split(" ",3))#在第几个空格处切成块,后边的无论是了 // //# # 按行分割,重回类型为List // var test_line_str = "abcnbcancabn"; // //# print(test_line_str.splitlines())#['abc', 'bca', 'cab'] // test_line_str.Split("n", StringSplitOptions.RemoveEmptyEntries); // //# print(test_line_str.split("n"))#看出分化了吗:['abc', 'bca', 'cab', ''] // // // //# # # 没看出来就再来个案例 // //# test_line_str2="abcnbcancabnLLL" // //# print(test_line_str2.splitlines())#['abc', 'bca', 'cab', 'LLL'] // //# print(test_line_str2.split("n"))#再晋升一下,最终不是n就和方面同样效果 // // // //# # 扩大: // //# print("hi my name is dnttn mntn".split())#split(),默许按空字符切割(空格、t、n等等,不用担忧返回'') // // // //# #partition,重临是元祖类型(前面会说的卡塔尔国,格局和find同样,找到第三个非凡的就罢工了 // //# print(test_str.partition("cd"))#('ABCDab', 'cd', 'efacddbdf') // //# print(test_str.rpartition("cd"))#('ABCDabcdefa', 'cd', 'dbdf') // //# print(test_str.partition("感觉温馨萌萌哒"))#没找到:('ABCDabcdefacddbdf', '', '') // // // //# # ------------------------------------------------------------- // //# 连接:join // //# separat.join(xxx) // //# 错误用法:xxx.join("-") // //# print("-".join(test_list)) // System.Console.WriteLine(string.Join("-",test_array));//test_array是数组 ABCD-bcdef-cddbdf //# # ------------------------------------------------------------- // // //# # 头尾判定:startswith(以。。。伊始卡塔 尔(英语:State of Qatar),endswith(以。。。结尾) // //# # test_str.startswith(以。。。开头) // var start_end_str=""; // //# print(start_end_str.startswith("https://") or start_end_str.startswith("http://")) // System.Console.WriteLine(start_end_str.StartsWith("")); // //# print(start_end_str.endswith(".com")) // System.Console.WriteLine(start_end_str.EndsWith(".com")); // //# # ------------------------------------------------------------- // // // //# # 大小写系:lower(字符串转变为题写),upper(字符串转换为题写),title(单词首字母大写),capitalize(第二个字符大写,别的变小写) // //# print(test_str) // //# print(test_str.upper())#ABCDABCDEFACDDBDF // System.Console.WriteLine(test_str.ToUpper()); // //# print(test_str.lower())#abcdabcdefacddbdf // System.Console.WriteLine(test_str.ToLower()); // //# print(test_str.capitalize())#第八个字符大写,其余变小写 // // // //# # ------------------------------------------------------------- // // // //# # 格式系列:lstrip(去除左边空格卡塔尔国,rstrip(去除侧面空格卡塔 尔(阿拉伯语:قطر‎,strip(去除两侧空格卡塔尔国,ljust,rjust,center // var strip_str=" I Have a Dream "; // //# print(strip_str.strip() "|")#笔者加 | 是为了看清后边空格,未有其他用场 // System.Console.WriteLine(strip_str.Trim() "|"); // //# print(strip_str.lstrip() "|") // System.Console.WriteLine(strip_str.TrimStart() "|"); // //# print(strip_str.rstrip() "|") // System.Console.WriteLine(strip_str.TrimEnd() "|");
    //# #那一个正是格式化输出,就不讲了 //# print(test_str.ljust(50)) //# print(test_str.rjust(50)) //# print(test_str.center(50)) //# # ------------------------------------------------------------- // // //# 验证种类:isalpha(是还是不是是纯字母卡塔 尔(阿拉伯语:قطر‎,isalnum(是还是不是是数字|字母卡塔尔国,isdigit(是不是是纯数字卡塔尔国,isspace(是或不是是纯空格卡塔 尔(英语:State of Qatar) // // // //# test_str2="Abcd123" // //# test_str3="123456" // var test_str4=" t"; // var test_str5=" t n "; //#isspace() ==>true // // string.IsNullOrEmpty 和 string.IsNullOrWhiteSpace 是系统自带的,别的的你要求团结包装叁个扩充类 // System.Console.WriteLine(string.IsNullOrEmpty(test_str4)); //false // System.Console.WriteLine(string.IsNullOrWhiteSpace(test_str4));//true // System.Console.WriteLine(string.IsNullOrEmpty(test_str5));//false // System.Console.WriteLine(string.IsNullOrWhiteSpace(test_str5));//true // //# 一张图化解,别的的友爱去试风度翩翩试吧 // //# test_str.isalpha() // //# test_str.isalnum() // //# test_str.isdigit() // //# test_str.isspace()

                #endregion
                // Console.Read();
            }
        }
    }
    

    View Code

    简单包装:

    新葡亰496net 317新葡亰496net 318

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    


    public static partial class ValidationHelper {

        #region 常用验证
    

        #region 集合系列
        /// <summary>
        /// 判断集合是否有数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="list"></param>
        /// <returns></returns>
        public static bool ExistsData<T>(this IEnumerable<T> list)
        {
            bool b = false;
            if (list != null && list.Count() > 0)
            {
                b = true;
            }
            return b;
        } 
        #endregion
    

        #region Null判断系列
        /// <summary>
        /// 判断是否为空或Null
        /// </summary>
        /// <param name="objStr"></param>
        /// <returns></returns>
        public static bool IsNullOrWhiteSpace(this string objStr)
        {
            if (string.IsNullOrWhiteSpace(objStr))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    


    ///

    /// 判断类型是否为可空类型 /// /// /// public static bool IsNullableType(Type theType) { return (theType.IsGenericType && theType.GetGenericTypeDefinition().Equals(typeof(Nullable<>))); }

        #endregion
    

        #region 数字字符串检查
        /// <summary>
        /// 是否数字字符串(包括小数)
        /// </summary>
        /// <param name="objStr">输入字符串</param>
        /// <returns></returns>
        public static bool IsNumber(this string objStr)
        {
            try
            {
                return Regex.IsMatch(objStr, @"^d (.d )?$");
            }
            catch
            {
                return false;
            }
        }
    


    ///

    /// 是否是浮点数 /// /// 输入字符串 /// public static bool IsDecimal(this string objStr) { try { return Regex.IsMatch(objStr, @"^(-?d )(.d )?$"); } catch { return false; } }

        #endregion
    

        #endregion
    

        #region 业务常用
    

        #region 中文检测
        /// <summary>
        /// 检测是否有中文字符
        /// </summary>
        /// <param name="objStr"></param>
        /// <returns></returns>
        public static bool IsZhCN(this string objStr)
        {
            try
            {
                return Regex.IsMatch(objStr, "[u4e00-u9fa5]");
            }
            catch
            {
                return false;
            }
        }
        #endregion
    

        #region 邮箱验证
        /// <summary>
        /// 判断邮箱地址是否正确
        /// </summary>
        /// <param name="objStr"></param>
        /// <returns></returns>
        public static bool IsEmail(this string objStr)
        {
            try
            {
                return Regex.IsMatch(objStr, @"^([w-.] )@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-] .) ))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$");
            }
            catch
            {
                return false;
            }
        }
        #endregion
    

        #region IP系列验证
        /// <summary>
        /// 是否为ip
        /// </summary>
        /// <param name="objStr"></param>
        /// <returns></returns>
        public static bool IsIP(this string objStr)
        {
            return Regex.IsMatch(objStr, @"^((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)$");
        }
    


    ///

    /// 判断输入的字符串是否是表示一个IP地址 ///
    /// 被比较的字符串
    /// 是IP地址则为True
    public static bool IsIPv4(this string objStr) { string[] IPs = objStr.Split('.'); for (int i = 0; i < IPs.Length; i ) { if (!Regex.IsMatch(IPs[i], @"^d $")) { return false; } if (Convert.ToUInt16(IPs[i]) > 255) { return false; } } return true; }
    /// /// 判断输入的字符串是否是合法的IPV6 地址 /// /// /// public static bool IsIPV6(string input) { string temp = input; string[] strs = temp.Split(':'); if (strs.Length > 8) { return false; } int count = input.GetStrCount("::"); if (count > 1) { return false; } else if (count == 0) { return Regex.IsMatch(input, @"^([da-f]{1,4}:){7}[da-f]{1,4}$"); } else { return Regex.IsMatch(input, @"^([da-f]{1,4}:){0,5}::([da-f]{1,4}:){0,5}[da-f]{1,4}$"); } }

        #endregion
    

        #region 网址系列验证
        /// <summary>
        /// 验证网址是否正确(http:或者https:)【后期添加 // 的情况】
        /// </summary>
        /// <param name="objStr">地址</param>
        /// <returns></returns>
        public static bool IsWebUrl(this string objStr)
        {
            try
            {
                return Regex.IsMatch(objStr, @"http://([w-] .) [w-] (/[w- ./?%&=]*)?|https://([w-] .) [w-] (/[w- ./?%&=]*)?");
            }
            catch
            {
                return false;
            }
        }
    


    ///

    /// 判断输入的字符串是否是一个超链接 /// /// /// public static bool IsURL(this string objStr) { string pattern = @"^[a-zA-Z] ://(w (-w ))(.(w (-w )))(?S)?$"; return Regex.IsMatch(objStr, pattern); }

        #endregion
    

        #region 邮政编码验证
        /// <summary>
        /// 验证邮政编码是否正确
        /// </summary>
        /// <param name="objStr">输入字符串</param>
        /// <returns></returns>
        public static bool IsZipCode(this string objStr)
        {
            try
            {
                return Regex.IsMatch(objStr, @"d{6}");
            }
            catch
            {
                return false;
            }
        }
        #endregion
    

        #region 电话 手机验证
        /// <summary>
        /// 验证手机号是否正确
        /// </summary>
        /// <param name="objStr">手机号</param>
        /// <returns></returns>
        public static bool IsMobile(this string objStr)
        {
            try
            {
                return Regex.IsMatch(objStr, @"^13[0-9]{9}|15[012356789][0-9]{8}|18[0123456789][0-9]{8}|147[0-9]{8}$");
            }
            catch
            {
                return false;
            }
        }
    


    ///

    /// 匹配3位或4位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔 /// /// /// public static bool IsPhone(this string objStr) { try { return Regex.IsMatch(objStr, "^(0d{2})[- ]?d{8}$|^0d{2}[- ]?d{8}$|^(0d{3})[- ]?d{7}$|^0d{3}[- ]?d{7}$"); } catch { return false; } }

        #endregion
    

        #region 字母或数字验证
        /// <summary>
        /// 是否只是字母或数字
        /// </summary>
        /// <param name="objStr"></param>
        /// <returns></returns>
        public static bool IsAbcOr123(this string objStr)
        {
            try
            {
                return Regex.IsMatch(objStr, @"^[0-9a-zA-Z$] $");
            }
            catch
            {
                return false;
            }
        }
        #endregion
    

        #endregion
    }
    

    View Code

          <**2> 结构的重疾**

    扩展:

      说这么多基本上差相当的少完了,后一次列表 字典 元组就二只讲了呀~ 

           (1卡塔 尔(英语:State of Qatar)作为参数字传送递的时候功用低

    1.多维元组:

    some_tuples=[(2,"萌萌哒"),(4,3)]

    some_tuples[0]

    some_tuples[0][1]

    style="background-color: initial;">新葡亰496net 319


    2.运算符扩张:( ,*,in,not in)

    #新葡亰496net, 运算符扩充:

    test_str="www.baidu.com"

    test_list=[1,"d",5]

    test_dict={"name":"dnt","wechat":"xxx"}

    test_list1=[2,4,"n","t",3]

    # 归并 (不支持字典)

    print(test_str test_str)

    print(test_list test_list1)

    # * 复制 (不扶持字典)

    print(test_str*2)

    print(test_list*2)

    新葡亰496net 320

    # in 是或不是留存(字典是查key卡塔尔

    print("d" in test_str) #True

    print("d" in test_list) #True

    print("d" in test_dict) #False

    print("name" in test_dict) #True

     

    # not in 是不是不设有(字典是查key卡塔 尔(英语:State of Qatar)

    print("z" not in test_str) #True

    print("z" not in test_list) #True

    print("z" not in test_dict) #True

    print("name" not in test_dict) #False

    新葡亰496net 321


    style="background-color: initial;">3.内置函数增添:(len,max,min,del卡塔 尔(阿拉伯语:قطر‎

    len(),这一个就不说了,用的太多了

    新葡亰496net 322

    max(),求最大值,dict的最大值是比较的key

    新葡亰496net 323

    其大器晚成注意生机勃勃种景况(当然了,你依照事先说的行业内部,list里面放同大器晚成种档次就不会出错了卡塔尔国

    新葡亰496net 324

    min(),这个和max一样用

    新葡亰496net 325

    del() or del xxx 删完就木有了

    新葡亰496net 326

     

    #可以先忽视cmp(item1, item2)   相比五个值 # style="color: #ff6600;">是Python2中间有个别 cmp(1,2) ==> -1 #cmp在可比字典数据时,先相比较键,再相比较值

            (2)装箱(Boxing)和解箱(Unboxing)效率低

    知识扩大

     

      style="color: #ff0000;">可变的元组(元组在概念的时候就不可能变了,然则能够透过相近这种办法来改换卡塔尔国

    新葡亰496net 327

    List切片

    新葡亰496net 328

    新葡亰496net 329


    Set集结扩张:

    新葡亰496net 330新葡亰496net 331新葡亰496net 332


    更新:(漏了一个删减的点子卡塔 尔(阿拉伯语:قطر‎:

    新葡亰496net 333

    概念再补充下

    # dict内部存放的风流倜傥生机勃勃和key放入的黄金时代一是还未有关联的
    # dict的key必得是不可变对象(dict依据key举办hash算法,来计量value的仓库储存地点
    # 假如老是总括同豆蔻梢头的key得出的结果不相同,那dict内部就全盘混乱了卡塔 尔(阿拉伯语:قطر‎

    用一张图精晓一下:(测量试验结果: style="color: #ff6600;">元组是足以视作Key的 -_-!

    新葡亰496net 334

         <3>  哪一天使用结构,何时使用类?

    附录Code

        在底下之处下利用类
          1 内容相当多的时候,因为组织总是暗地里拷贝了二个有时变量。
          2 索要相当多内部存款和储蓄器的时候,因为栈的体量有限,而堆日常是十足使用的。
          3 必要在宣称字段的时候举办初叶化。
          4 须要从基类世袭。
          5 须要多态性。接口也得以用来兑现多态性,但是因为结构是值类型,固然它能够从接口世襲,不过在多态进度中会实行李装运箱和平解决箱的操作。

    Python:

    Python List:

    新葡亰496net 335新葡亰496net 336

    # 定义一个列表,列表虽然可以存不同类型,一般我们把相同类型的值存列表里面,不同类型存字典里(key,value)
    infos_list=["C#","JavaScript"]#[]
    

    # ###########################################################
    # # 遍历 for while
    # for item in infos_list:
    #     print(item)
    

    # i=0
    # while i<len(infos_list):
    #     print(infos_list[i])
    #     i =1
    # ###########################################################
    # # 增加
    # # 末尾追加
    # infos_list.append("Java")
    # print(infos_list)
    

    # # 指定位置插入
    # infos_list.insert(0,"Python")
    # print(infos_list)
    

    # temp_list=["test1","test2"]
    # infos_list.insert(0,temp_list)
    # print(infos_list)
    

    # # 添加一个列表
    # infos_list2=["张三",21]#python里面的列表类似于List<object>
    # infos_list.extend(infos_list2)
    # print(infos_list)
    

    # # help(infos_list.extend)#可以查看etend方法描述
    # ###########################################################
    # # 删除
    # # pop()删除最后一个元素,返回删掉的元素
    # # pop(index) 删除指定下标元素
    # print(infos_list.pop())
    # print(infos_list)
    # print(infos_list.pop(0))
    # # print(infos_list.pop(10)) #不存在就报错
    # print(infos_list)
    

    # # remove("")删除指定元素
    # infos_list.remove("张三")
    # # infos_list.remove("dnt") #不存在就报错
    # print(infos_list)
    

    # # del xxx[index] 删除指定下标元素
    # del infos_list[1]
    # print(infos_list)
    # # del infos_list[10] #不存在就报错
    

    # # del infos_list #删除集合(集合再访问就不存在了)
    # ###########################################################
    # # 修改 xxx[index]=xx
    # # 注意:一般不推荐在for循环里面修改
    # print(infos_list2)
    # infos_list2[1]="PHP" #只有下标修改一种方式
    # # infos_list2[3]="GO" #不存在则异常
    # print(infos_list2)
    

    # # 想按值修改需要先查下标再修改
    # infos_list2.index("张三")
    # infos_list2[0]="GO"
    # print(infos_list2)
    # # infos_list2.index("dnt")#不存在则异常
    

    # # 知识面拓展: https://www.zhihu.com/question/49098374
    # # 为什么python中不建议在for循环中修改列表?
    # # 由于在遍历的过程中,删除了其中一个元素,导致后面的元素整体前移,导致有个元素成了漏网之鱼。
    # # 同样的,在遍历过程中,使用插入操作,也会导致类似的错误。这也就是问题里说的无法“跟踪”元素。
    # # 如果使用while,则可以在面对这样情况的时候灵活应对。
    

    ###########################################################
    # # 查询 in, not in, index, count
    # # # for扩展:https://www.cnblogs.com/dotnetcrazy/p/9102030.html#forelse
    

    # names_list=["张三","李四","王二麻子"]
    

    # # #张三在列表中执行操作
    # if "张三" in names_list:
    #     names_list.remove("张三")
    # print(names_list)
    

    # # #查看"大舅子"不在列表中执行操作
    # if "大舅子" not in names_list:
    #     names_list.append("大舅子")
    # print(names_list)
    

    # # #查询王二麻子的索引
    # print(names_list.index("王二麻子"))
    

    # print(names_list.count("大舅子")) 
    # print(names_list.count("逆天")) 
    ###########################################################
    # # 排序(sort, reverse 逆置)
    # num_list=[1,3,5,88,7]
    

    # #倒序
    # num_list.reverse()
    # print(num_list)
    

    # # 从小到大排序
    # num_list.sort()
    # print(num_list)
    

    # # 从大到小
    # num_list.sort(reverse=True)
    # print(num_list)
    # # ###########################################################
    

    # # #列表嵌套(列表也是可以嵌套的)
    # num_list2=[33,44,22]
    # num_list.append(num_list2)
    # print(num_list)
    # # for item in num_list:
    # #     print(item,end="")
    

    # print(num_list[5])
    # print(num_list[5][1])
    # # ###########################################################
    

    # # # 引入Null==>None
    # # a=[1,2,3,4]
    # # b=[5,6]
    # # a=a.append(b)#a.append(b)没有返回值
    # # print(a)#None
    

    View Code

    Python Tuple:

    新葡亰496net 337新葡亰496net 338

    # 只能查询,其他操作和列表差不多(不可变)
    test_tuple=("萌萌哒",1,3,5,"加息","加息")
    

    # count index
    print(test_tuple.count("加息"))
    print(test_tuple.index("萌萌哒"))#没有find方法
    # 注意是左闭右开区间==>[1,4)
    # print(test_tuple.index("加息", 1, 4))#查不到报错:ValueError: tuple.index(x): x not in tuple
    

    #下标取
    print(test_tuple[0])
    

    # 遍历
    for item in test_tuple:
        print(item)
    


    i=0 while i

    # 扩展:
    test_tuple1=(1,) #(1)就不是元祖了
    test_tuple2=(2)
    print(type(test_tuple1))
    print(type(test_tuple2))
    

    # # ==============================================
    # 扩展:(后面讲字典遍历的时候会再提一下的)
    a=(1,2)
    b=a#把a的引用给b
    #a里面两个值,直接给左边两个变量赋值了(有点像拆包了)
    c,d=a #不是把a分别赋值给c和d,等价于:c=a[0] d=a[1]
    


    print(a) print(b) print(c) print(d)

    View Code

    Python Dict:

    新葡亰496net 339新葡亰496net 340

    infos_dict={"name":"dnt","web":"dkill.net"}
    

    # # 遍历
    # for item in infos_dict.keys():
    #     print(item)
    

    # #注意,如果你直接对infos遍历,其实只是遍历keys
    # for item in infos_dict:
    #     print(item)
    

    # for item in infos_dict.values():
    #     print(item)
    

    # for item in infos_dict.items():
    #     print("Key:%s,Value:%s"%(item[0],item[1]))
    # #每一次相当于取一个元组,那可以用之前讲的例子来简化了:c,d=a #等价于:c=a[0] d=a[1]
    # for k,v in infos_dict.items():
    #     print("Key:%s,Value:%s"%(k,v))
    

    # # 增加 修改 (有就修改,没就添加)
    # # 添加
    # infos_dict["wechat"]="lll"
    # print(infos_dict)
    

    # # 修改
    # infos_dict["wechat"]="dotnetcrazy"
    # print(infos_dict)
    

    # # 删除
    # del infos_dict["name"]
    # del infos_dict["dog"] #不存在就报错
    # print(infos_dict)
    

    # #清空字典内容
    # infos_dict.clear()
    # print(infos_dict)
    

    # # 删除字典
    # del infos_dict
    

    # 查询
    infos_dict["name"]
    # infos_dict["mmd"] #查不到就异常
    



    infos_dict.get("name") infos_dict.get("mmd")#查不到不会极度

    # 查看帮助
    # help(infos_dict)
    len(infos_dict) #有几对key,value 
    # infos_dict.has_key("name") #这个是python2里面的
    

    View Code


    NetCore:

    NetCore List:

    新葡亰496net 341新葡亰496net 342

    // using System;
    // using System.Collections.Generic;
    // using System.Linq;
    


    // namespace aibaseConsole // { // public static class Program // { // private static void Main() // { // #region List // //# 定义一个列表 // // # infos_list=["C#","JavaScript"]#[] // var infos_list = new List() { "C#", "JavaScript" }; // // var infos_list2 = new List() { "张三", 21 }; // // // # ########################################################### // // // # # 遍历 for while // // // # for item in infos_list: // // // # print(item) // // foreach (var item in infos_list) // // { // // System.Console.WriteLine(item); // // } // // for (int i = 0; i < infos_list.Count; i ) // // { // // System.Console.WriteLine(infos_list[i]); // // } // // // # i=0 // // // # while i // // infos_list.Add("Java"); // // DivPrintList(infos_list); // // // # # 内定地方插入 // // // # infos_list.insert(0,"Python") // // // # print(infos_list) // // infos_list.Insert(0,"Python"); // // DivPrintList(infos_list); // // // # # 增加三个列表 // // // # infos_list2=["张三",21]#python里面的列表近似于List
    // // // # infos_list.extend(infos_list2) // // // # print(infos_list) // // infos_list.AddRange(infos_list2); // // DivPrintList(infos_list); // // /C#有insertRange方法 / // // DivPrintList(infos_list2,"List2原本的列表:"); // // infos_list2.InsertRange(0,infos_list); // // DivPrintList(infos_list2,"List2变化后列表:"); // // // # # help(infos_list.extend)#能够查阅etend方法描述 // // // # ########################################################### // // // # # 删除 // // // # # pop()删除最终八个要素,再次来到删掉的成分 // // // # # pop(index) 删除钦命下标元素 // // // # print(infos_list.pop()) // // // # print(infos_list) // // // # print(infos_list.pop(1)) // // // # # print(infos_list.pop(10)) #不真实就报错 // // // # print(infos_list)
    // // // # # remove("")删除钦点成分 // // // # infos_list.remove("张三") // // // # # infos_list.remove("dnt") #荒诞不经就报错 // // // # print(infos_list)
    // // // # # del xxx[index] 删除内定下标成分 // // // # del infos_list[1] // // // # print(infos_list) // // // # # del infos_list[10] #不设有就报错
    // // // # del infos_list #删除集结(集结再拜见就官样文章了卡塔 尔(英语:State of Qatar)
    // // DivPrintList(infos_list); // // infos_list.RemoveAt(1); // // // infos_list.RemoveAt(10);//官样文章则报错 // // // infos_list.RemoveRange(0,1); //可以移除八个 // // DivPrintList(infos_list); // // infos_list.Remove("小编家在东南吗?"); //移除钦命item,不设有不会报错 // // DivPrintList(infos_list,"清空前:"); // // infos_list.Clear();//清空列表 // // DivPrintList(infos_list,"清空后:");
    // // // # ########################################################### // // // # # 修改 xxx[index]=xx // // // # # 注意:日常不引进在for循环里面纠正 // // // # print(infos_list2) // // // # infos_list2[1]="PHP" #只有下标改善意气风发种格局 // // // # # infos_list2[3]="GO" #不设有则极其 // // // # print(infos_list2) // // DivPrintList(infos_list2); // // infos_list2[1] = "PHP"; // // // infos_list2[3]="GO"; //不设有则不行 // // DivPrintList(infos_list2); // // // # # 想按值更正供给先查下标再改正 // // // # infos_list2.index("张三") // // // # infos_list2[0]="GO" // // // # print(infos_list2) // // // # # infos_list2.index("dnt")#不设有则不行 // // int index = infos_list2.IndexOf("张三"); // // infos_list2[index] = "GO"; // // DivPrintList(infos_list2); // // infos_list2.IndexOf("dnt");//不设有重回-1
    // // // ########################################################### // // // # 查询 in, not in, index, count // // // # # for扩展: // // // # names_list=["张三","李四","王二麻子"] // // var names_list=new List(){"张三","李四","王二麻子"}; // // // Console.WriteLine(names_list.Find(i=>i=="张三")); // // // Console.WriteLine(names_list.FirstOrDefault(i=>i=="张三")); // // Console.WriteLine(names_list.Exists(i=>i=="张三")); // // System.Console.WriteLine(names_list.Contains("张三")); // // // # #张三在列表中奉行操作 // // // # if "张三" in names_list: // // // # names_list.remove("张三") // // // # else: // // // # print(names_list)
    // // // # #查看"大舅子"不在列表中进行操作 // // // # if "大舅子" not in names_list: // // // # names_list.append("大舅子") // // // # else: // // // # print(names_list)
    // // // # #查询王二麻子的索引 // // // # print(names_list.index("王二麻子")) // // // names_list.IndexOf("王二麻子");
    // // // # print(names_list.count("大舅子")) // // // # print(names_list.count("逆天")) // // // Console.WriteLine(names_list.Count);
    // // // ########################################################### // // // # # 排序(sort, reverse 逆置) // // // # num_list=[1,3,5,88,7] // // var num_list = new List() { 1, 3, 5, 88, 7 };
    // // // # #倒序 // // // # num_list.reverse() // // // # print(num_list) // // num_list.Reverse(); // // DivPrintList(num_list); // // // # # 从小到大排序 // // // # num_list.sort() // // // # print(num_list) // // num_list.Sort(); // // DivPrintList(num_list);
    // // // # # 从大到小 // // // # num_list.sort(reverse=True) // // // # print(num_list) // // num_list.Sort(); // // num_list.Reverse(); // // DivPrintList(num_list);
    // // // # ###########################################################
    // // // # #列表嵌套(列表也是能够嵌套的) // // // # num_list2=[33,44,22] // // // # num_list.append(num_list2) // // // # print(num_list) // // var num_list2 = new List() { 33, 44, 22,new List(){11,55,77} }; // // DivPrintList(num_list2);//能够定义多维数组来支撑 num_list2[i][j] // // // # for item in num_list: // // // # print(item) // // // # ###########################################################
    // // // # # 引入Null==>None // // // # a=[1,2,3,4] // // // # b=[5,6] // // // # a=a.append(b)#a.append(b)未有回到值 // // // # print(a)#None // #endregion
    // // Console.Read(); // }
    // private static void DivPrintList(List list, string say = "") // { // Console.WriteLine($"n{say}"); // foreach (var item in list) // { // System.Console.Write($"{item} "); // } // } // } // }

    View Code

    NetCore Tuple:

    新葡亰496net 343新葡亰496net 344

    // using System;
    


    // namespace aibaseConsole // { // public static class Program // { // private static void Main() // { // #region Tuple // // C#相月组主即使有助于技师,不用自然能够. // // 元祖系: // // 值元组:新葡亰496net基础语法对比,经典面试题及答案。 // // 比方:当你回去多少个值是或不是还用ref out 也许再次回到三个list之类的? // // 这么些都急需先定义,比较麻烦.元祖在局地景色用的超级多 eg:

    // // 初始化 // // var test_tuple = ("萌萌哒", 1, 3, 5, "加息", "加息"); //这种艺术正是valueTuple了
    // // test_tuple.Item1 = "ddd";//能够修正值
    // // test_tuple.GetType(); // // test_tuple.itemxxx //获取值只好通过itemxxx
    // var result = GetCityAndTel(); //补助async/await情势 // var city = result.city; // var tel = result.tel; // // 拆包形式: // var (city1, tel1) = GetCityAndTel();
    // #endregion // // Console.Read(); // } // // public static (string city, string tel) GetCityAndTel() // // { // // return ("新加坡", "110"); // // } // // 简化写法 // public static (string city, string tel) GetCityAndTel() => ("东京(Tokyo卡塔 尔(英语:State of Qatar)", "110"); // } // }

    View Code

    NetCore Dict:

    新葡亰496net 345新葡亰496net 346

    using System;
    using System.Collections.Generic;
    


    namespace aibaseConsole { public static class Program { private static void Main() {

                #region Dict
                // infos_dict={"name":"dnt","web":"dkill.net"}
                // # # 遍历
                // # for item in infos_dict.keys():
                // #     print(item)
                // # for item in infos_dict.values():
                // #     print(item)
                // # for item in infos_dict.items():
                // #     print("Key:%s,Value:%s"%(item[0],item[1]))
                // # #每一次相当于取一个元组,那可以用之前讲的例子来简化了:c,d=a #等价于:c=a[0] d=a[1]
                // # for k,v in infos_dict.items():
                // #     print("Key:%s,Value:%s"%(k,v))
                var infos_dict = new Dictionary<string, object>{
                    {"name","dnt"},
                    {"web","dkill.net"}
                };
                // foreach (var item in infos_dict.Keys)
                // {
                //     System.Console.WriteLine(item);
                // }
                // foreach (var item in infos_dict.Values)
                // {
                //     System.Console.WriteLine(item);
                // }
                // foreach (KeyValuePair<string, object> kv in infos_dict)
                // {
                //     //    System.Console.WriteLine("Key:%s,Value:%s",(kv.Key,kv.Value));
                //     System.Console.WriteLine($"Key:{kv.Key},Value:{kv.Value}");
                // }
    


    // // # # 扩张 修改 (有就改过,没就增加) // // # # 添加 // // # infos_dict["wechat"]="lll" // // # print(infos_dict) // infos_dict.Add("wechat", "lll"); // infos_dict["wechat1"] = "lll"; // // # # 修改 // // # infos_dict["wechat"]="dotnetcrazy" // // # print(infos_dict) // infos_dict["wechat"] = "dotnetcrazy";
    // // # # 删除 // // # del infos_dict["name"] // // # del infos_dict["dog"] #不设有就报错 // // # print(infos_dict) // infos_dict.Remove("name"); // infos_dict.Remove("dog"); // // # #清空驶列车表内容 // // # infos_dict.clear() // // # print(infos_dict) // infos_dict.Clear(); // // # # 删除列表 // // # del infos_dict
    // # 查询 // infos_dict["name"] // infos_dict["mmd"] #查不到就那么些

    // infos_dict.get("name") // infos_dict.get("mmd")#查不到不会那个 Console.WriteLine(infos_dict["name"]); // Console.WriteLine(infos_dict["mmd"]); //#查不到就极其 // 先看看有未有 ContainsKey(key),看值就 ContainsValue(value) if (infos_dict.ContainsKey("mmd")) Console.WriteLine(infos_dict["mmd"]);
    // # 查看支持 // help(infos_dict) // len(infos_dict) #有几对key,value Console.WriteLine(infos_dict.Count);

                #endregion
    


    // Console.Read(); } } }

    View Code

         在底下的情况下利用结构

           1 期望能够象原始类型(举例int,double之类的卡塔 尔(英语:State of Qatar)同样选取它。举例我们得以声惠氏个复数结构,然后像double类型雷同地应用它。
          2 内需的内部存款和储蓄器少之又少,栈能够完全地宽容它。
          3 想隐藏污染源搜聚器的拍卖,自身主宰财富的释放。
          4 只供给缺省的值,而无需在表明字段的时候赋值。
          5 不必要从基类世袭,当然,不包括ValueType。
          6 无需多态行为。

          5:给XML文件中已知的结点增多属性:

             XML文件结构如下:

    新葡亰496net 347 style="color: #000000"> style="color: #000000">xml version style="color: #000000">= style="color: #800000">" style="color: #800000">1.0 style="color: #800000">" style="color: #000000"> encoding style="color: #000000">= style="color: #800000">" style="color: #800000">utf-8 style="color: #800000">" style="color: #000000">?>
    新葡亰496net 348 style="color: #000000">< style="color: #000000">MovieBlacklist style="color: #000000">>
    新葡亰496net 349   style="color: #000000">< style="color: #000000">Blacklist id style="color: #000000">= style="color: #800000">" style="color: #800000">17050 style="color: #800000">" style="color: #000000"> part style="color: #000000">= style="color: #800000">" style="color: #800000">32 style="color: #800000">" style="color: #000000"> name style="color: #000000">= style="color: #800000">" style="color: #800000">江湖俏佳人 style="color: #800000">" style="color: #000000"> age style="color: #000000">= style="color: #800000">" style="color: #800000">20 style="color: #800000">" style="color: #000000">  style="color: #000000">/>
    新葡亰496net 350   style="color: #000000">< style="color: #000000">Blacklist id style="color: #000000">= style="color: #800000">" style="color: #800000">17310 style="color: #800000">" style="color: #000000"> part style="color: #000000">= style="color: #800000">" style="color: #800000">1 style="color: #800000">" style="color: #000000"> name style="color: #000000">= style="color: #800000">" style="color: #800000">阴谋 style="color: #800000">" style="color: #000000">  style="color: #000000">/>
    新葡亰496net 351   style="color: #000000">< style="color: #000000">Blacklist id style="color: #000000">= style="color: #800000">" style="color: #800000">17316 style="color: #800000">" style="color: #000000"> part style="color: #000000">= style="color: #800000">" style="color: #800000">1 style="color: #800000">" style="color: #000000"> name style="color: #000000">= style="color: #800000">" style="color: #800000">WWE摔角080314 style="color: #800000">" style="color: #000000">  style="color: #000000">/>
    新葡亰496net 352   style="color: #000000">< style="color: #000000">布莱克list id style="color: #000000">= style="color: #800000">" style="color: #800000">17190 style="color: #800000">" style="color: #000000"> part style="color: #000000">= style="color: #800000">" style="color: #800000">1 style="color: #800000">" style="color: #000000"> name style="color: #000000">= style="color: #800000">" style="color: #800000">2013世界终结日 style="color: #800000">" style="color: #000000">  style="color: #000000">/>
    新葡亰496net 353 style="color: #000000">>< span> style="color: #000000">MovieBlacklist style="color: #000000">>

          
           给第叁个Blacklist加多属性age

    新葡亰496net 354新葡亰496net 355/**//// 
    新葡亰496net 356          /// 给已知结点扩张叁天性能
    新葡亰496net 357          /// 
    新葡亰496net 358          /// 
    新葡亰496net 359          /// 
    新葡亰496net 360        public void XMLAddAttributes(string XmlPathNode,string sName, string sContent)
    新葡亰496net 361新葡亰496net 362          新葡亰496net 363{
    新葡亰496net 364              // 创制节点
    新葡亰496net 365              XmlNode attrCount = objXmlDoc.CreateNode(XmlNodeType.Attribute, sName , null);
    新葡亰496net 366              attrCount.Value = sContent ;
    新葡亰496net 367              // 增添节点属性
    新葡亰496net 368              objXmlDoc.SelectSingleNode(XmlPathNode).Attributes.SetNamedItem(attrCount);
    新葡亰496net 369          }

           6.求以下表达式的值,写出你想到的生机勃勃种或三种达成方式: 1-2 3-4 …… m
    答:
    int sum=0;
    bool flag=true;
    for(int i=1;i<=m;i )
    {
       if(flag)
          sum =i;
       else
          sum-=i;
       flag=!flag;
    }
    return sum;
           
          7. 一列数的平整如下: 1、1、2、3、5、8、13、21、34...... 求第三十四人数是多少, 用递归算法达成。
    答:public class MainClass
                      {
                      public static void Main()
                      {
                      Console.WriteLine(Foo(30));
                      }
                      public static int Foo(int i)
                      {
                      if (i <= 0)
                      return 0;
                      else if(i > 0 && i <= 2)
                      return 1;
                      else return Foo(i -1) Foo(i - 2);
                      }
                      }

          8.在上边包车型大巴例子里  

    新葡亰496net 370新葡亰496net 371Code
    新葡亰496net 372class Program
    新葡亰496net 373新葡亰496net 374    新葡亰496net 375{
    新葡亰496net 376        static void Main(string[] args)
    新葡亰496net 377新葡亰496net 378        新葡亰496net 379{
    新葡亰496net 380            B _b = new B();
    新葡亰496net 381            Console.ReadKey();
    新葡亰496net 382        }
    新葡亰496net 383    }
    新葡亰496net 384    class A
    新葡亰496net 385新葡亰496net 386    新葡亰496net 387{
    新葡亰496net 388        public A()
    新葡亰496net 389新葡亰496net 390        新葡亰496net 391{
    新葡亰496net 392            PrintFields();
    新葡亰496net 393        }
    新葡亰496net 394新葡亰496net 395        public virtual void PrintFields() 新葡亰496net 396{ }
    新葡亰496net 397    }
    新葡亰496net 398    class B : A
    新葡亰496net 399新葡亰496net 400    新葡亰496net 401{
    新葡亰496net 402        int x = 1;
    新葡亰496net 403        int y;
    新葡亰496net 404        public B()
    新葡亰496net 405新葡亰496net 406        新葡亰496net 407{
    新葡亰496net 408            y = -1;
    新葡亰496net 409        }
    新葡亰496net 410        public override void PrintFields()
    新葡亰496net 411新葡亰496net 412        新葡亰496net 413{
    新葡亰496net 414            Console.WriteLine("x={0},y={1}", x, y);
    新葡亰496net 415        }
    新葡亰496net 416    }

    当使用new B()创立B的实例时,发生怎样输出?
    答:X=1,Y=0     

         9.short s1 = 1; s1 = s1 1;有何样错? short s1 = 1; s1 = 1;有怎样错?
    答:short s1 = 1; s1 = s1 1;有错,s1是short型,s1 1是int型,不能够显式转变为short型。可改过为s1 =(short)(s1 1) 。short s1 = 1; s1 = 1准确。
             
        10.写出输出结果           

    新葡亰496net 417public abstract class A
    新葡亰496net 418新葡亰496net 419    新葡亰496net 420{
    新葡亰496net 421        public A()
    新葡亰496net 422新葡亰496net 423        新葡亰496net 424{
    新葡亰496net 425            Console.WriteLine('A');
    新葡亰496net 426        }
    新葡亰496net 427        public virtual void Fun()  
    新葡亰496net 428新葡亰496net 429       新葡亰496net 430{
    新葡亰496net 431            Console.WriteLine("A.Fun()");
    新葡亰496net 432        }
    新葡亰496net 433    }
    新葡亰496net 434
    新葡亰496net 435    public class B : A
    新葡亰496net 436新葡亰496net 437    新葡亰496net 438{
    新葡亰496net 439        public B()
    新葡亰496net 440新葡亰496net 441        新葡亰496net 442{
    新葡亰496net 443            Console.WriteLine('B');
    新葡亰496net 444        }
    新葡亰496net 445
    新葡亰496net 446        public new void Fun()  
    新葡亰496net 447新葡亰496net 448       新葡亰496net 449{
    新葡亰496net 450            Console.WriteLine("B.Fun()");
    新葡亰496net 451        }
    新葡亰496net 452
    新葡亰496net 453        public static void Main()
    新葡亰496net 454新葡亰496net 455        新葡亰496net 456{
    新葡亰496net 457            A a = new B();
    新葡亰496net 458            a.Fun();
    新葡亰496net 459            Console.ReadKey();
    新葡亰496net 460        }
    新葡亰496net 461    }

    A
    B
    A.Fun()
            第意气风发:调用父类构造函数,第二:调用本身构造函数.

            11.写出输出结果          

    新葡亰496net 462public class A
    新葡亰496net 463新葡亰496net 464    新葡亰496net 465{
    新葡亰496net 466        public virtual void Fun1(int i)
    新葡亰496net 467新葡亰496net 468        新葡亰496net 469{
    新葡亰496net 470            Console.WriteLine(i);
    新葡亰496net 471        }
    新葡亰496net 472
    新葡亰496net 473        public void Fun2(A a)
    新葡亰496net 474新葡亰496net 475        新葡亰496net 476{
    新葡亰496net 477            a.Fun1(1);
    新葡亰496net 478            Fun1(5);
    新葡亰496net 479        }
    新葡亰496net 480    }
    新葡亰496net 481
    新葡亰496net 482
    新葡亰496net 483    public class B : A
    新葡亰496net 484新葡亰496net 485    新葡亰496net 486{
    新葡亰496net 487        public override void Fun1(int i)
    新葡亰496net 488新葡亰496net 489        新葡亰496net 490{
    新葡亰496net 491            base.Fun1(i   1);
    新葡亰496net 492        }
    新葡亰496net 493
    新葡亰496net 494        public static void Main()
    新葡亰496net 495新葡亰496net 496        新葡亰496net 497{
    新葡亰496net 498            B b = new B();
    新葡亰496net 499            A a = new A();
    新葡亰496net 500            a.Fun2(b);
    新葡亰496net 501            b.Fun2(a);
    新葡亰496net 502            Console.ReadKey();
    新葡亰496net 503        }
    新葡亰496net 504    }

       2
        5
        1
        6  

    12:写一个HTML页面,达成以下职能,左键点击页面时突显“您好”,右键点击时显得“制止右键”。并在2秒钟后自动关闭页面。
    答:

    13:大约陈述一下ASP。NET服务器控件的生命周期 答:起首化 加载视图状态 管理回发数据 加载 发送回发改进文告处理回发事件 预显示 保存情况 突显 处置 卸载

    **14:程序设计: **猫大叫一声,全体的老鼠都从头逃跑,主人被惊吓醒来。(C#语言)

    务求:  1.要有联合浮动性,老鼠和全体者的作为是被动的。

               2.设想可扩大性,猫的喊叫声可能引起别的联合浮动作效果应。

    新葡亰496net 505新葡亰496net 506Code
    新葡亰496net 507public interface Observer
    新葡亰496net 508新葡亰496net 509    新葡亰496net 510{
    新葡亰496net 511        void Response();    //观望者的响应,如是老鼠看到猫的展现
    新葡亰496net 512    }
    新葡亰496net 513    public interface Subject
    新葡亰496net 514新葡亰496net 515    新葡亰496net 516{
    新葡亰496net 517        void AimAt(Observer obs);  //针对怎样观察者,这里指猫的要扑捉的靶子---老鼠
    新葡亰496net 518    }
    新葡亰496net 519    public class Mouse : Observer
    新葡亰496net 520新葡亰496net 521    新葡亰496net 522{
    新葡亰496net 523        private string name;
    新葡亰496net 524        public Mouse(string name, Subject subj)
    新葡亰496net 525新葡亰496net 526        新葡亰496net 527{           
    新葡亰496net 528            this.name = name;
    新葡亰496net 529            subj.AimAt(this);
    新葡亰496net 530        }
    新葡亰496net 531        
    新葡亰496net 532        public void Response()
    新葡亰496net 533新葡亰496net 534        新葡亰496net 535{
    新葡亰496net 536            Console.WriteLine(name   " attempt to escape!";
    新葡亰496net 537        }
    新葡亰496net 538    }
    新葡亰496net 539    public class Master : Observer
    新葡亰496net 540新葡亰496net 541    新葡亰496net 542{   
    新葡亰496net 543        public Master(Subject subj)
    新葡亰496net 544新葡亰496net 545        新葡亰496net 546{           
    新葡亰496net 547            subj.AimAt(this);
    新葡亰496net 548        }
    新葡亰496net 549        
    新葡亰496net 550        public void Response()
    新葡亰496net 551新葡亰496net 552        新葡亰496net 553{
    新葡亰496net 554            Console.WriteLine("Host waken!";
    新葡亰496net 555        }  
    新葡亰496net 556    }
    新葡亰496net 557 
    新葡亰496net 558    public class Cat : Subject
    新葡亰496net 559新葡亰496net 560    新葡亰496net 561{
    新葡亰496net 562        private ArrayList observers;
    新葡亰496net 563        public Cat()
    新葡亰496net 564新葡亰496net 565        新葡亰496net 566{   
    新葡亰496net 567            this.observers = new ArrayList();
    新葡亰496net 568        }
    新葡亰496net 569        public void AimAt(Observer obs)
    新葡亰496net 570新葡亰496net 571        新葡亰496net 572{
    新葡亰496net 573            this.observers.Add(obs);
    新葡亰496net 574        }
    新葡亰496net 575        public void Cry()
    新葡亰496net 576新葡亰496net 577        新葡亰496net 578{
    新葡亰496net 579            Console.WriteLine("Cat cryed!";
    新葡亰496net 580            foreach (Observer obs in this.observers)
    新葡亰496net 581新葡亰496net 582            新葡亰496net 583{
    新葡亰496net 584                obs.Response();
    新葡亰496net 585            }
    新葡亰496net 586        }
    新葡亰496net 587    }
    新葡亰496net 588    class MainClass
    新葡亰496net 589新葡亰496net 590    新葡亰496net 591{       
    新葡亰496net 592        static void Main(string[] args)
    新葡亰496net 593新葡亰496net 594        新葡亰496net 595{
    新葡亰496net 596            Cat cat = new Cat();
    新葡亰496net 597            Mouse mouse1 = new Mouse("mouse1", cat);
    新葡亰496net 598            Mouse mouse2 = new Mouse("mouse2", cat);
    新葡亰496net 599            Master master = new Master(cat);
    新葡亰496net 600            cat.Cry();
    新葡亰496net 601        }
    新葡亰496net 602    }
    新葡亰496net 603

           上边的程序运营后:

     

    新葡亰496net 604新葡亰496net 605Code
    新葡亰496net 606class Program
    新葡亰496net 607新葡亰496net 608    新葡亰496net 609{
    新葡亰496net 610        static void Main(string[] args)
    新葡亰496net 611新葡亰496net 612        新葡亰496net 613{
    新葡亰496net 614            Class1 o1 = new Class1();
    新葡亰496net 615            Class1 o2 = new Class1();
    新葡亰496net 616            
    新葡亰496net 617
    新葡亰496net 618        }
    新葡亰496net 619    }
    新葡亰496net 620    class Class1
    新葡亰496net 621新葡亰496net 622    新葡亰496net 623{
    新葡亰496net 624        private static int count = 0;
    新葡亰496net 625        static Class1()
    新葡亰496net 626新葡亰496net 627        新葡亰496net 628{
    新葡亰496net 629            count ;
    新葡亰496net 630        }
    新葡亰496net 631        public Class1()
    新葡亰496net 632新葡亰496net 633        新葡亰496net 634{
    新葡亰496net 635            count ;
    新葡亰496net 636        }
    新葡亰496net 637    }

    借问,o1.Count的值是有一点?( C )
    A.1         B.2             C.3             D.4
    解答:class1在实例化的时候,先运转静态构造函数,然后运转实例构造函数,第3回实例化的时候,由于静态构造函数已经存在,全体直接实例化,它们都分享静态变量count.

    (1卡塔 尔(阿拉伯语:قطر‎用于对静态字段、只读字段等的初步化。

     

     

     

     

     

     

     

    (2卡塔尔增加static关键字,不能增多访谈修饰符,因为静态构造函数都以个体的。

     

     

     

     

    (3卡塔尔国类的静态构造函数在给定应用程序域中至多实行一回:唯有创造类的实例或许引用类的其余静态成员才激起静态构造函数

    (4卡塔 尔(英语:State of Qatar)静态构造函数是不行接二连三的,而且无法被直接调用。

     

     

     

     

     

     

    (5卡塔 尔(英语:State of Qatar)如若类中隐含用来开头实行的 Main 方法,则该类的静态构造函数将要调用 Main 方法以前实行。

     

     

        任何带有初步值设定项的静态字段,则在试行该类的静态构造函数时,先要依照文本顺序实施那二个发轫值设定项。

     

    (6卡塔 尔(阿拉伯语:قطر‎若无编写制定静态构造函数,而那个时候类中蕴藏带有开端值设定的静态字段,那么编写翻译器会自动生成默许的静态构造函数

    本文由新葡亰496net发布于电脑系统,转载请注明出处:新葡亰496net基础语法对比,经典面试题及答案

    关键词: