学习笔记-->Python\Java\C#基本语法对比使用

==
说明:
本人学了Java和Python后,感觉用法有点混淆,故做此笔记,以供后续查看!全是基本语法的使用。==

Python基础语句

#说明
#python中单引号和双引号没有区别,一样使用
#
message="AaD"
message1="i love 3"
#1.使用“+”连接时无空格,使用“,”连接是有空格的
print(message.lower()+message.upper()+message.title())#aadAADAad
print(message.lower(),message.upper(),message.title())#aad AAD Aad
print(message1.title())#I Love 只要是空格前都要大写
print(len(message))
print(message.index("a"))#3
print(message[0:2])#Aa 都是左闭右开
#2.\n\t换行符制表符号+交换
print("languages:\n\tpython")
a=10
b=20
a,b=b,a

#3.删除空格
message = " python "
print(message.rstrip()+"----"+message.lstrip()+"----")

#4.字符强转int() str() float()
print(chr(1))#a
age=3
print("happy"+" "+str(age)+"rd birthday!")

#5.列表相关函数的调用,注意大多数方法是没有返回值的=None,没有返回值的,说明修改了原来的列表
message=["a","b","a","c"]
print(message[0])
message.append(22)
message.remove("a")
message.insert(1,"qq")
print(message.insert(1,"11"))#无返回值None
print(message)#['b', '11', 'qq', 'a', 'c', 22]
del message[3]
print(message.pop(-1))#22

print(message)#['b', '11', 'qq', 'c']
message.sort(reverse=False)
print(message)#['11', 'b', 'c', 'qq']
print(sorted(message))#有返回值-对原本函数不构成影响(已证)
print(message)
print(set(message))#返回不重复的无序数组


#6.列表的操作
#6.1 min()  max()  sum()有返回值
pizzas=["a","b","d","c"]
for i in pizzas:
    print(i,end="\n")#abdc
list1=[1,3,5]
print(min(list1),max(list1),sum(list1))#1 5 9

#6.2表的建立
#6.2.1
list1=[]
for i in range(1,10):#左开右闭
    list1.append(i)
print(list1)#[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list1[1:3])#[2, 3]左开右闭
print(list1[-2])#8
print(list1[:2])#[1, 2]左开右闭
list1[2]="33333333"

#6.2.2列表生成器
list1 = [i for i in range(1,10,2)]

#6.2.3可迭代对象生成list
list1 = list(range(1,10))#[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list1)

#6.3列表复制
food=[1,2,3,"a","b"]
food1= food#直接相等,导致a变,b也变
food1.append("ccc")
print("food:{}".format(food),"food1:{}".format(food1))

food1= food[:]#a,b单独操作
food1.append("ddd")
print("food:{}".format(food),"food1:{}".format(food1))

#7.元祖(与list对应,只不过元祖里信息不能修改)
dimension=(100,200,3,"sss")#元素不可修改,但可附新值
dimension=(100,400)
print(dimension)

#8.字典
#8.1
dic={'name':'lin','age':'20'}
print(dic['name'])
print(dic.keys(),dic.values())
print(sorted(dic.keys()),set(dic.keys()))#['age', 'name'] {'age', 'name'}

dic['age']=30#增,改
print(dic)#{'name': 'lin', 'age': 30}
del dic['name']#删,只能删除键,对应的值也会被删除
print(dic)

#8.2遍历
for k,v in dic.items():
    print(k,v)

for k in dic.keys():
    print(k)

#8.3
# 键-值(字符串)
# 键-值(列表)
# 键-值(字典)
dic1={'name':'lin','food':['mushroom','chess'],'address':{'country':'nanjing','population':500}}


#9.程序流程控制
#9.1  if语句
car="bmw"
print(car=="bmw")#返回boolean
print("b" in car)#True

#9.1.2
# if-elif-elif-else#只执行一段代码块
a=10
if a>4:#上下两个if无关联,都会执行
    print("yes")
if a>6:
    print("yes")

#9.1.3判断是否为空
b=[]
if b:
    print("b中是有数字的")

#10 while 语句
#10.1 while+input()
# isFlag=True
# while isFlag:
#     m=input()
#     if m=="y" or m=="y".upper():
#         isFlag=False
#     else:
#         print("你输入的数据是{}".format(m))
#
# name=input("first name:")
# print(name)
#10.1.1,使用!=作为条件,也就是说一直循环,直到条件=5,退出循环
count=0
while count !=5:
	cur=+=1

#10.2
pets=[1,2,2,3,4,3,2]
while 2 in pets:
    pets.remove(2)
print("去除所有的2")
print(pets)


l=[1,2,3,3,3]
for item in l:
    # print(item)
    if item==3:
        l.remove(item)
        print(l)
print(l)#[1, 2, 3]

   # #idex是从0一直往下走,每次要检查idex<=len(l),idex是一直累加的,l是看新生成的
   # index     item    目标=3   l
   # 0         1               [1,2,3,3,3]
   # 1         2               [1,2,3,3,3]
   # 2         3       ok      [1,2,3,3]
   # 3         3       ok      [1,2,3]


#11函数
def get_user(pet,username='niming'):#要求默认值放到末尾,函数可以有返回值,
    print("hello,{} 我的朋友,你喜欢{}吗".format(username,pet))
    return "作者你好"
m1=get_user('dog','lin')
print(m1)

#11.1函数接收多个参数
def make_pizza(size,*addings):
    print('the pizza is {} inch'.format(size))
    for i in addings:
        print(i,end='')
make_pizza(16,"a","b","c")
print()

#12.类(可以有多个父类)
#12.1
class Cat:#self表示当前对象

    def __init__(self,name):#初始化方法,定义一个类的具体属性
        self.name=name
        self.__age='我是私有的,你看不见'#在属性或方法前加__表示私有,1.是不能被对象调用,2.不可被子类继承 3.但可以通过内部方法使用,如eat()

    def eat(self,food):#self就是对象本身
        print(self.name+"猫爱吃{}".format(food),self.__age)

    ##内置方法,带有  __方法名__的方法,在对象被建立时,这种函数会自动执行
    def __str__(self):
        return self.name+"是一只猫"

tom = Cat('tom')
tom.eat('fish')
print(tom)#<__main__.Cat object at 0x0000000001DC39B0>
#重写str内置方法后print(tom)->tom是一只猫

#12.2类的多继承时,先入为主,C(A,B),先查c有没,再查A(要是A中有这方法,就不再看B了),最后查B
class A:
    def p(self):
        print("a")
class B:
    def p(self):
        print("b")

class C(A,B):
    pass
    # def p(self):#重写父类方法
    #     print("c")
o=C()
o.p()
print()

#12.3类的方法
#从生命周期来看,是现有类,再有对象
# 还没有生成对象之前就有了(类属性,静态方法,类方法),因此他们内部不能调用对象的方法
#生成对象后,可以调用类的方法
class Game:
    #1.类属性
    top_score=0#只能被类方法调用,不能被对象方法调用
    #2. self,对象属性
    def __init__(self,name):
        self.name =name
    #3.静态方法
    @staticmethod
    def show_help():
        print("帮助信息")

    #4.类方法
    @classmethod
    def show_top_score(cls):
        print("历史记录{}".format(cls.top_score))
    #5.对象方法
    def show(self):
        print('开始游戏!')
        self.show_help()
        self.show_top_score()

game=Game('lin')
game.show()


Java基础语句

请添加图片描述
附上一个思维导图:链接
在这里插入图片描述

package lin;
import java.util.*;

/**
 * @author lin
 * @create 2021-08-11-19:13
 */
public class basic {
    public static void main(String[] args){
  /*说明
  1.java规范比较严格,单双引号不一样,定义变量前,要声明类型,每个代码后加封号
  2.变量的命名方式遵循一定原则,好记。
  3.代码要编译,再运行,有时明显的错误,编译都过不了
    1.整型:byte(1字节=8bit)\ short(2字节)\ int(4字节) \long(8字节)
    2.浮点型float(4字节) \double(8字节)
    3.字符型char(1字符=2字节)
    4.布尔型 false ture
    */
        int a=0; char a1='c'; double a2=12.3; boolean a3=false; String a4="sss";
        //1.只能使用“,”连接
        String str="ilovechina";
        int[] arr=new int[]{12,3};
        System.out.println(str.toUpperCase()+" "+str.toLowerCase());
        System.out.println(str.length()+" "+arr.length);//8 2
        System.out.println(str.indexOf("i"));//0
        System.out.println(str.substring(0,3));//ilo 都是左闭右开

        //2.\n\t换行符制表符号+交换
        System.out.println("languages:\n\tpython");
        int a=10;
        int b =20;
        int temp;
        temp=a;
        a=b;
        b=temp;
        

        //3.删除空格
        String s1 = "  java  ";
        System.out.println(s1.trim());

        //4.字符强转,调用Arrays类来查看数组
        String s2="2";
        char [] b =new char[]{'a','b'};
        byte [] b1 =new byte[]{'a','b'};
        System.out.println(String.valueOf(3)+" "+Integer.parseInt(s2));
        System.out.println(new String(b)+" "+s2.toCharArray());
        System.out.println(new String(b1)+" "+s2.getBytes());
        System.out.println(Arrays.toString(s2.toCharArray()));

        //5.数组+Arrays工具类的使用,指定什么样的数据类型里边就只填什么,
        // 由于是基本数据类型而不是引用数据类型(ArrayList),因为Array中没有什么方法
        int [] b2=new int[]{1,2,3};//静态初始化
        int [][]b4 = new int[3][5];//动态初始化
        b2[0]=3;
        int [][] b3 =new int [][]{{1,2},{2,4,5}};
        System.out.println(Arrays.toString(b2));
        //Object [] b4= new Object []{1,'a',"a",new duixiang()};//所有类都继承object,所以object的数组可以任意方
        System.out.println(b3[0][1]);//2

        //5.1Arrays工具类
        int [] b5=new int[4];
        System.out.println(Arrays.equals(b2,b5));//必须保证前后是同一种类型才能比较,b2,b4一个是1维,一个是2维,编译不通过
        System.out.println(Arrays.toString(b2));//[3, 2, 3]
//        Arrays.fill(b2,10);//[10, 10, 10]
        Arrays.sort(b2);
        System.out.println(Arrays.toString(b2));//[2, 3, 3]
        System.out.println(Arrays.binarySearch(b2, 2));//以二分法查找2所在的index

        //6/集合---只能存对象引用数据类型,基本类型不行
        /*6.java几个分为Coolection结构(单列数据)和Map(双列数据)两种体系
         |----Collection接口:单列集合,用来存储一个一个的对象
*          |----List接口:存储有序的、可重复的数据。  -->“动态”数组
*              |----ArrayList、LinkedList、Vector//底层数据存储的方式不同
*
*          |----Set接口:存储无序的、不可重复的数据   -->高中讲的“集合”
*              |----HashSet、LinkedHashSet、TreeSet
*
*      |----Map接口:双列集合,用来存储一对(key - value)一对的数据   -->高中函数:y = f(x)
*              |----HashMap、LinkedHashMap、TreeMap、Hashtable、Properties*/
        //ArrayList
       //6.1 数组转ArrayList集合的多种方法,见url:https://blog.csdn.net/m0_46204224/article/details/119539504?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162872965816780261968890%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=162872965816780261968890&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-119539504.pc_v2_rank_blog_default&utm_term=java&spm=1018.2226.3001.4450

       //6.2方法
        /*增:add(Object obj)
        删:remove(int index) / remove(Object obj)
        对于string是正常list.remove("a"); list.remove(new Integer(15));
        改:set(int index, Object ele)
        查:get(int index)
        插:add(int index, Object ele)
        长度:size()返回存储元素的个数,而不是底层new(10)的10个空的数组!
        遍历:① Iterator迭代器方式
                Iterator iterator = list.iterator();
                while(iterator.hasNext()){
                    System.out.println(iterator.next());
                }
                //方式二:增强for循环
                for(Object obj : list){
                    System.out.println(obj);
                }

                System.out.println("***************");

                //方式三:普通for循环
                for(int i = 0;i < list.size();i++){
                    System.out.println(list.get(i));
                }
        */
        ArrayList <Integer>arrayList = new ArrayList<Integer>();//<Integer,String>尖括号表示泛型,表示此表只能存放什么类型的信息,注意只能存对象引用数据类型,基本类型不行
        arrayList.add(1);
        arrayList.add(2);
        System.out.println(arrayList.toString());//[1, 2]
        arrayList.add(0,45);//[45, 1, 2]
        System.out.println(arrayList);
        System.out.println(arrayList.get(0));//45

        //6.3collections接口方法
        /*
        reverse(List):反转 List 中元素的顺序
        shuffle(List):对 List 集合元素进行随机排序
        sort(List):根据元素的自然顺序对指定 List 集合元素按升序排序
        sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
        swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换

        Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
        Object max(Collection,Comparator):根据 Comparator 指定的顺序,返回给定集合中的最大元素
        Object min(Collection)
        Object min(Collection,Comparator)
        int frequency(Collection,Object):返回指定集合中指定元素的出现次数
        void copy(List dest,List src):将src中的内容复制到dest中
        boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换 List 对象的所有旧值

        */

        //8.Map
        /*总结:常用方法:
        * 添加:put(Object key,Object value)
        * 删除:remove(Object key)
        * 修改:put(Object key,Object value)
        * 查询:get(Object key)
        * 长度:size()
        * 遍历:keySet() / values() / entrySet()*/

        Map map =new HashMap();
        map.put("aa",123);
        map.put(45,123);
        map.put("bb",56);
        ArrayList arrayList1 =new ArrayList();
        arrayList1.add(3);
        map.put("cc",arrayList1);//{aa=123, bb=56, cc=[3], 45=123}

        Set a7 = map.keySet();
        System.out.println(a7.toString());//[aa, bb, cc, 45]无序的

        //9程序流程控制
        //9.1 if-else if -else if -else
        int x=4;
        int y =5;
        if(x>y){
            System.out.println("x大于y");
        }else if(x==y){
            System.out.println("x等于y");
        }else
            System.out.println("x小于y");

        //9.2switch-case
        int number=1;
        switch(number){
            case 0:
                System.out.println("case 0 状态");
                break;
            case 1:
                System.out.println("case 1 状态");
                break;
        }

        //9.3循环(三种,每种都包含以下4个部分)
        /*a.开发中常使用for,while
        b.do{}while ();至少执行一次循环体
        1.初始化条件
        2.循环条件
        3.循环体
        4.迭代部分*/

        //9.3.1-3
        for(int i=0;i<10;i++){
            System.out.println("yes");
        }
        /*
        for (1;2;4){
            3
        }
        //
        1
        while(2){
            3
            4 }

        //
        1
        do{
            3
            4 }
        while(2)
        */

        //12.类只能但继承,但为了弥补缺点,增加了一个类调用多个接口的方法
        /*
        class Person{

        //属性(也叫成员变量)
        boolean isMarried;
        String name;
        //构造器(使用类时,对类属性进行初始化操作)--对应init初始化方法
        public Person(String n,boolean m){
            this.name =n
            this.isMarried =m}

        //方法,函数
        public void walk(){
            System.out.println("人走路")
            }

        //代码块,用的少(用来初始化类,对象,只能用static修饰)
        {   age =17;
            System.out.println("hello,static block-2");
        }

        //内部类
        class pet{
             String name;
             float weight;
            }

        }

        * */
    }
    //13接口,类的继承,用关键词来修饰变量,方法
    interface Flyable{
        void attack();
    }

    class pet{
        void attacrt(){
        };
    }

    //1
    class Person extends pet{
    }
    //class person1 implements Flyable{}
    Person tom =new Person();
}


C#基础语句

5.数组、集合
1.数组是连续的不能add,delete(new int[3])
2.集合(arraylist支持add,delete但是装箱拆箱耗时-由于存储变量类型不一致情况导致,2.list泛型 list约束了只支持一种类型)

//每次new就会开辟一个新地址,尽管内容一次,但不是同一个
```csharp
 //关键字 int,int[] 声明变量类型,new 创建数组
  int q = 2;
  int[] a = new int[6];
  int[] b = new int[3] { 1,2,3};
  int[] c = new int[] { 'a',2,3};
  MessageBox.Show(c[0].ToString()); //输出97 

在这里插入图片描述
6.数组、集合

 List<int> a = new List<int>( );
 List<int> b = new List<int> { 1,2,2};
 List<Person> p = new List<Person>();
 a.Add(112);
 a[0] = 4;
 a.Insert(0, 3);
 a.RemoveAt(0);
 a.Remove(4);
 a.Clear();
 p.Add(new Person() { });
 
 Dictionary<int, string> c = new Dictionary<int, string>();
 Dictionary<int, string> d = new Dictionary<int, string> {  //对象初始化器
     { 2,"333"},{4,"555"}
 };
 c.Add(1, "111");
 c.Add(2, "222");
 c.Add(3, "333");

 string value = c[2];//通过键索引到值; “222”
 bool f=c.Remove(1);//通过键删除那个值

9程序流程控制
9.1 条件分支
IF要一个个判断才能选择某个分支,switch直接进入那个分支

if (i>10){
}
else if(i>0){
}
else{
}

private void InitializeComponent()
        {
            MessageBox.Show("lin");
            int a = 2;  
            switch (a)  //a可以为数字也可为string
            {
                case 1:
                    MessageBox.Show("1");
                    break;
                case 2:
                    MessageBox.Show("2");
                    break;//必须要break
                default:
                    MessageBox.Show("3");
                    break;//必须要break
            }

9.3 循环-三种

//for 循环直接循环    while 预设一个条件,当条件满足时进入循环,    do {}while  先执行,达到条件退出
 for (int a =2; a<4; a++)
            {
                MessageBox.Show(a.ToString());
            };

int i = 1;
while (i <=3) {
    MessageBox.Show((i++).ToString());
}

int b = 1;
do {
    MessageBox.Show((b).ToString()); 
    b++;
}
while (b < 4); 

10.类与方法
在这里插入图片描述
10.1函数-参数修饰符

   /*1。无修饰时函数内部处理的是副本不影响原来的值
    string want = "2222";   //want = "2222"
    Sellhouse(want);        //box显示1111
    MessageBox.Show(want.ToString());  //box显示2222
    */

    /*2。out修饰时,引用传递, 函数内部处理的是原地址,影响原来的值
    string want = "2222";   //want = "2222"
    Sellhouse1(out want);        //box显示1111
    MessageBox.Show(want.ToString());  //box显示1111
    */

    /*3。ref修饰时,引用传递, 函数内部处理的是原地址,影响原来的值,与out不同,out使用函数中(Sellhouse1)必须要赋值否则报错
    string want = "2222";   //want = "2222"
    Sellhouse2(ref want);        //box显示1111
    MessageBox.Show(want.ToString());  //box显示1111
    */
}
public void Sellhouse(string want)
{
    want = "1111";
    MessageBox.Show(want.ToString());
}
public void Sellhouse1(out string want)  
{
    want = "1111";   //有out时必须要赋值,否则报错
    MessageBox.Show(want.ToString());
}

public void Sellhouse2(ref string want)
{
    want = "1111";   //有ref时,谁调用它必须赋初值,否则报错
    MessageBox.Show(want.ToString());
}

12.遍历

  int[] a = new int[] { 3,4,5};
  foreach (int i in a)
  {
      MessageBox.Show(i.ToString());
  }

  List<int> b = new List<int> { 2,3,4};
  foreach(int i in b)
  {
      MessageBox.Show(i.ToString());
  }

  Dictionary<string, string> c = new Dictionary<string, string>() { {"aa","aaaaa" },{"bb","bbbb" } };
  foreach (KeyValuePair<string,string> i in c)
  {
      string key = i.Key;
      string value = i.Value;
  }

13.枚举

enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };

static void Main()
 {
     int x = (int)Day.Sun;//0
     int y = (int)Day.Fri;//5
  

     //1GetName方法:在指定枚举中检索具有指定值的常数的名称
     string strToday = Enum.GetName(typeof(Day), 3);//Wed

     //2GetNames方法: 检索指定枚举中常数名称的数组
     string[] array1 = Enum.GetNames(typeof(Day));//[Sun, Mon, Tue, Wed, Thu, Fri, Sat]

     Array array3 = Enum.GetValues(typeof(Day));
     Debug.WriteLine(array3.GetType().ToString());

     foreach (var i in array3) { Debug.WriteLine(i); }
     Debug.WriteLine(array1);//5

 }

类型转换

int number = 10;
//int ---> double
//目标类型 = 源类型
double d = number; //自动类型转换 隐式类型转换

double d1 = 303.6;
//double ---> int
//目标类型 = (目标类型)原类型
int n = (int)d1;//强制类型转换,显示类型转换
Console.WriteLine(n); //303

int n1 = 111111;
string s = n1.ToString();
Console.WriteLine(s);

占位符

string a = "aaa";
string b = "bbb";
string c = String.Format("我" + "{0}" +"{1}",a,b);//我aaabbb
string d = String.Format("我" + "{1}" + "{0}", a, b);//我bbbaaa
Console.WriteLine(c);
Console.WriteLine(d);

关键字
const(声明常量比如数学中的PI,e都是固定不变的值 )、

//1.必须初始化等号后必须有值   2.PI不能被修改
const double PI = 3.1415;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值