Unityc#专题篇之c#基础篇实践练习

Posted 秩沅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unityc#专题篇之c#基础篇实践练习相关的知识,希望对你有一定的参考价值。


👨‍💻个人主页@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏unityc#专题篇习题


习题总结专题篇


文章目录


🎶前言


🅰️ 题单来自:唐老狮


🎶(A)枚举


  • 实践经验

    1.三行注释的使用
    2.try catch的应用
    3.枚举和int ,string之间的转换
    4.枚举和switch之间的便捷操作

 class _枚举1
    
        enum E_QQ
        
            living,
            busy,
            leaving,
            disturb
        
        static void Main(string[] args)
        

            Console.WriteLine("请选择在线的状态:(0)在线,(1)忙碌,(2)离开,(3)请勿打扰");
            try
            
                int state = int.Parse(Console.ReadLine());
                E_QQ SState = (E_QQ)state;
                Console.WriteLine("现状态为: 0", SState);
            
            catch
            
                Console.WriteLine("请输入数字:");
            
        
    

 class Program
    
        /// <summary>
        /// 咖啡选购枚举
        /// </summary>
      enum E_coofee
        
                Middle = 35 ,
                Big = 40 ,
                Supper = 43,
        
        static void Main(string[] args)
        
            try
            
                Console.WriteLine("请选择您的咖啡种类输入对应的价格:中杯(35) 大杯(40) 超大杯(43)");
                int Index = int.Parse(Console.ReadLine());
                E_coofee state = (E_coofee)Index;
                switch (state)
                
                    case E_coofee.Middle:
                        
                            Console.WriteLine(state);
                            break;
                        
                    case E_coofee.Big:
                        
                            Console.WriteLine(state);
                            break;
                        
                    case E_coofee.Supper:
                        
                            Console.WriteLine(state);
                            break;
                        
                    default:
                        break;
                
            
            catch
            
                Console.WriteLine("请输入咖啡的价格");
            
        
    
      


   enum E_Sex
    
        男性,
        女性
    
    /// <summary>
    /// 职业枚举
    /// </summary>
    enum E_Work
    
        战士,
        猎人,
        法师
    
    class Program
    
        static void Main(string[] args)
        
            try
            
                Console.WriteLine("请选择您的英雄性别: 男(0)/女(1)");
                int sex = int.Parse(Console.ReadLine());
                Console.WriteLine("请选择您的英雄职业: 战士(0)/猎人(1)/法师(2)");
                int collage = int.Parse(Console.ReadLine());

                E_Sex E_sex = (E_Sex)sex;
                E_Work E_work = (E_Work)collage;
                int damage = 0;
                int fanse = 0;
                string imagic = "";
                switch (E_sex)
                
                    case E_Sex.男性:
                        damage += 50;
                        fanse += 100;
                        break;
                    case E_Sex.女性:
                        damage += 150;
                        fanse += 20;
                        break;
                    default:
                        break;
                
                switch (E_work)
                
                    case E_Work.战士:
                        damage += 20;
                        fanse += 100;
                        imagic = "冲锋";
                        break;
                    case E_Work.猎人:
                        damage += 120;
                        fanse += 30;
                        imagic = "假死";
                        break;
                    case E_Work.法师:
                        damage += 200;
                        fanse += 10;
                        imagic = "奥术冲击";
                        break;
                    default:
                        break;
                
                Console.WriteLine("你选择了01\\n攻击为2\\n防御力为3\\n职业技能为4", E_sex, E_work, damage, fanse, imagic);
            

            catch
            
                Console.WriteLine("请输入对应的数字");
            

        
    


🎶(B)一维数组


  • 实践经验

    1.简单的if else逻辑语句可以换成三目运算符
    2.foreach的灵活使用

   static void Main(string[] args)
        
            int[] A = new int[100];
            int[] B = new int[100];
            int[] C = new int[10];
            Random rand = new Random();
            //6.随机生成10个数
            for(int i = 0; i<A.Length;i++)
            
                A[i] = 100;
                B[i] = 2 * A[i];
                if(i<C.Length )
                

                    C[i] = rand.Next(1,101);
                
            
            //7.数组中找出max,min,avge,all
            int max = C[0], min = C[0], avge = 0, all = 0;
            foreach (int i in C)
            
                Console.Write(" " + i);
                all += i;
                if (i > max) max = i;
                if (i < min) min = i;
            
            avge = all / C.Length; 
            Console.WriteLine("\\n最大值0,最小值1,总和2,平均值3\\n",max,min,all,avge);
           //8.简单反转数组
           for( int i = 0; i<C.Length /2;i++)
            
                int temp;
                temp = C[i];
                C[i] = C[C.Length -1-i];
                C[C.Length - 1 - i] = temp;
 
            
            foreach (int i in C)
            
                Console.Write(" " + i);
            
         
             //11.打印符号
            Console.WriteLine();
            string[] array = new string[25];    //简单的if 和else可以用三目运算符代替
            for(int i = 0; i< array .Length; i++)
            
                array[i] = i % 2 == 0 ? "*" : "&"; 
            
            int Temp = 0;
            foreach( string i in array)
            
                Temp++;
                Console.Write(" "+i);
                if (Temp % 5 == 0) Console.WriteLine();
            


🎶(C)二维数组


  • 实践经验

    1.array.length 此时代表的是全部元素数量
    2.矩阵对角线规则 i == j的时候
    3.矩阵上半部规则 j >= i 的时候
  static void Main(string[] args)
        
            #region  12
            //const int Index = 100;
            //int[,] array = new int[Index, Index];
            //int x = 1;
            //Console.WriteLine("数组长度0", array.Length); //此时代表整个长度
            //for (int i = 0; i < Index; i++)
            //
            //    for (int j = 0; j < Index; j++)
            //        array[i, j] = x++;
            //
            //foreach (int i in array) Console.Write(" " + i);
            #endregion
            #region 13
            int[,] B = new int[4, 4];
            Random rand = new Random();
            for (int i = 0; i < 4; i++)
            
                for (int j = 0; j < 4; j++)
                
                    //让右上半部分为0
                    B[i, j] = j >= i ? 0 : rand.Next(1, 101);
                
            
            int temp = 1;
            foreach (int i in B)
            
                Console.Write(" " + i);
                if (temp++ % 4 == 0) Console.WriteLine();
            
            #endregion
            #region 14

            int[,] C = new int[3, 3];
            int All = 0;
            Random Rand = new Random();
            for (int i = 0; i < 3; i++)
            
                for (int j = 0; j < 3; j++)
                
                    C[i, j] = Rand.Next(1, 10);
                    if (i == j) All += C[i, j];
                
            
            Console.WriteLine();
            int t = 1;
            foreach (int i in C)
            
                Console.Write(" " + i);
                if (t++ % 3 == 0) Console.WriteLine();
            
            Console.WriteLine("对角线的和为0", All);
            #endregion
            #region 15
            int M,N;
            Random rrrand = new Random();
            try
            
                Console.WriteLine("您想要要得到多少行多少列的矩阵呢");
              
                M = int.Parse(Console.ReadLine());
                N = int.Parse(Console.ReadLine());
                int[,] ros = new int[M, N];
                for (int i = 0; i < M; i++)
                
                    for (int j = 0; j < N; j++)
                    
                        //将下标为1的行或者列全部为1
                        ros[i, j] = i == 1 || j == 1 ? 1 : rrrand.Next(0, 2);
                    
                
                Console.WriteLine();
                int q = 1;
                foreach (int i in ros)
                
                    Console.Write(" " + i);
                    if (q++ % N == 0) Console.WriteLine();
                
             
            
          
          catch
            
                Console.WriteLine("请输入整形数字");
            
            #endregion


🎶(D)值,引用类型存储上的区别


  • 实践经验

    1.F9断点调试和F10向下调式
    2.数组和string空间开辟和引用的关系

  • 值类型的实例化

  • 引用类型的实例化

  • 特殊引用类型的实例化

🎶(E)函数的使用


  • 实践经验

    1三目运算符的便捷性-简化和可观化代码
    2.三行注释的运用

    /// <summary    >
    /// 函数的运用
    /// </summary>
    class Program
    
        const float Pi = 3.1415f;
        /// <summary>
        /// 返回最大值
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns></returns>
         public int MAX(int a , int b) 
        
            return a > b ? a : b;
        
        /// <summary>
        ///  计算圆面积和周长
        /// </summary>
        /// <param name="r"></param>
        public void Circrl( int r)
        
            Console.WriteLine("圆的面积为0,周长为1", Pi * r * r, 2 * Pi * r);
        
        /// <summary>
        /// 数组的基本操作
        /// </summary>
        /// <param name="a"></param>
        public void Array(int [] a)
        
            int max, min, all= 0;
            max = min = a[0];
            foreach(int i in a)
            
                max = i > max ? i : max;
                min = i < min ? i : min;
                all += i;
            
            Console.WriteLine("数组的最大值为0,最小值为1,总和为2,平均值为3", max, min, all, all / a.Length);
        
        /// <summary>
        /// 判断质数
        /// </summary>
        /// <param name="x"></param>
        /// <returns></returns>
        public bool ZhiShu( int x )
        
            for (int i = 2; i < x; i++)
            
                return i % 2 == 0 ? false : true;
            
            return true;
        
        /// <summary>
        /// 判断是否是闰年
        /// </summary>
        /// <param name="x"></param>
        /// <returns></returns>
        public bool RYear( int x )
        
            return x % 400 == 0 || (x % 4 == 0 && x % 100 != 0) ? true : false;
        
        static void Main(string[] args)
        
            Program text = new Program();
            text.MAX(5, 8);
            text.Circrl(2);
            text.

Python+Selenium练习篇之1-摘取网页上全部邮箱

前面已经介绍了Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是入门了。接下来,我计划写第二个系列:练习篇,通过一些练习,了解和掌握一些Selenium常用的接口或者方法。

      练习场景:在某一个网页上有些字段是我们感兴趣的,我们希望摘取出来,进行其他操作。但是这些字段可能在一个网页的不同地方。例如,我们需要在关于百度页面-联系我们,摘取全部的邮箱。

 

 

思路拆分:

1. 首先,需要得到当前页面的source内容,就像,打开一个页面,右键-查看页面源代码。

2. 找出规律,通过正则表达式去摘取匹配的字段,存储到一个字典或者列表。

3. 循环打印字典或列表中内容,Python中用 for 语句实现。

 

技术角度实现相关方法:

1. 查看页面的源代码,在Selenium中有driver.page_source 这个方法得到

2. Python中利用正则,需要导入re模块

3. for email in emails :

          print email

 

想法技术角度方法都找到,我们新建一个extract_email.py 文件,输入如下代码:

# coding=utf-8

from selenium import webdriver
import re

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("http://home.baidu.com/contact.html")
# 得到页面源代码
doc = driver.page_source
emails = re.findall(r\'[\\w]+@[\\w\\.-]+\',doc) # 利用正则,找出 xxx@xxx.xxx 的字段,保存到emails列表
# 循环打印匹配的邮箱
for email in emails:
print (email)
解释:

在python正则表达式语法中,Python中字符串前面加上 r 表示原生字符串,用\\w表示匹配字母数字及下划线。re模块下findall方法返回的是一个匹配子字符串的列表。

 

运行结果:

 

以上是关于Unityc#专题篇之c#基础篇实践练习的主要内容,如果未能解决你的问题,请参考以下文章

C#基础篇之语言和框架介绍

朝花夕拾Android自定义View篇之多点触控(下)实践出真知

Python+Selenium练习篇之1-摘取网页上全部邮箱

基础总结篇之三:Activity的task相关

Django中级篇之Model专题

Dubbo 专题(基础篇):Dubbo 介绍环境搭建与实践