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#基础篇实践练习的主要内容,如果未能解决你的问题,请参考以下文章
朝花夕拾Android自定义View篇之多点触控(下)实践出真知