Python3与C#基础语法对⽐(就当Python和C#基础的普及吧)
欢迎提出更简单的语法~(⽂章中案例有两个福利哦,⼀个是养⽣,⼀个是⼈⼯智能[ 密码:fqif])
先说下感觉,python的编程有点JavaScript的感觉(⽐如:'和“有时候不区别),⼜感觉像外国版的易语⾔,整个过程像读书⼀样,⽐如⼀个元素不在列表之中==> for item not in lists。
使⽤它做个⼤点的项⽬⼀定要先规定好编程风格,不然能让⼈崩溃的。先不深究,后⾯会继续深究。。。(Python2我就不讲了,官⽅推荐使⽤Python3)
1.
Python官⽅是推荐使⽤_来间隔单词,但⼀般开发⼈员都是以各⾃主语⾔的命名来定义的,这个就各⼈爱好了,不过团队⼀定要统⼀。
命名规则:总的原则就是见名知意,⼀般都是驼峰命名法,纯Python的话推荐⽤_连接单词
扩充:Python的关键词可以⾃⼰打印⼀下:
In [1]:
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']标⽰符由字母、下划线和数字组成,且数字不能开头(这个基本上都⼀样)注意:标识符是区分⼤⼩写的
In [2]:
# Python标识符区分⼤⼩写的案例
temp="xxx"
tEmp="==="
print(temp+tEmp)
xxx===
In [3]:
%%script csharp
//CSharp标识符区分⼤⼩写的案例
var temp = "xxx";
var tEmp = "===";
Console.WriteLine(temp + tEmp);
xxx===
2.
python输出就直接print即可,C是printf(不要搞混哦)
#注释⼀⾏,三个单引号或者三个双引号注释多⾏:'''XXX'''或者"""XXXX"""(⼀般⽤#就够了,有点像shell脚本的感觉)
In [4]:
#单⾏注释输出
print("Hello World!")
Hello World!
In [5]:
'''三个单引号多⾏注释:
print("Hello World!")
print("Hello World!")
print("Hello World!")'''
Out[5]:
'三个单引号多⾏注释:\nprint("Hello World!")\nprint("Hello World!")\nprint("Hello World!")'
In [6]:
"""三个双引号多⾏注释:
print("Hello World!")
print("Hello World!")
print("Hello World!")"""
Out[6]:
'三个双引号多⾏注释:\nprint("Hello World!")\nprint("Hello World!")\nprint("Hello World!")'
C、Java、Net都是//注释⼀⾏,/**/注释多⾏
Console.WriteLine("⼩明同学");
// Console.WriteLine("⼩明同学"); 注释⼀⾏
/*Console.WriteLine("⼩明同学");
Console.WriteLine("⼩明同学"); 注释多⾏*/
3.
python定义变量⽐较⽜逼,直接写变量名即可,句⼦后⾯不⽤加分号,eg:name="⼩明"
In [7]:
#定义⼀个变量并输出
name="⼩明"
print(name)
⼩明
可以⽤var来进⾏类型推断,eg:var name="⼩明";
In [8]:
%%script csharp
var test = "123";//定义⼀个变量
Console.WriteLine(test);//输出这个变量
123
4.
换⾏输出,不换⾏输出:(\n使⽤这个就不说了,它们和C都是⼀样的)
python:print("dnt.dkill/now",end='')默认end='\n' (' 和 " 随意)
In [9]:
print("dnt.dkill/now",end='')
print("带你⾛进中医经络")
dnt.dkill/now带你⾛进中医经络
In [10]:
print("dnt.dkill/now",end="")
print("带你⾛进中医经络")
dnt.dkill/now带你⾛进中医经络
如果字符串内部既包含'⼜包含"怎么办?可以⽤转义字符\来标识
In [11]:
#如果字符串内部既包含'⼜包含"怎么办?可以⽤转义字符\来标识
print("I\'m \"OK\"!")
I'm "OK"!
r''表⽰''内部的字符串默认不转义
In [12]:
# 如果字符串⾥⾯有很多字符都需要转义,就需要加很多\,为了简化,Python还允许⽤r''表⽰''内部的字符串默认不转义print(r'\\\t\\')
\\\t\\
'''...'''的格式表⽰多⾏内容
In [13]:
#如果字符串内部有很多换⾏,⽤\n写在⼀⾏⾥不好阅读,为了简化,Python允许⽤'''...'''的格式表⽰多⾏内容
print('''我请你吃饭吧~
晚上吃啥?
去厕所,你说呢?''')
我请你吃饭吧~
晚上吃啥?
去厕所,你说呢?
扩:Python提供⼀种以空格分隔的⽅式:
In [14]:
print("I","Love","You")
I Love You
python输出多个重复字符,不需要⾃⼰⼿打N个*或者for循环输出多个重复字符,eg:print("x"*10) In [15]:
print("x"*10)
xxxxxxxxxx
如果你不太确定应该⽤什么,%s永远起作⽤,它会把任何数据类型转换为字符串
%c    字符
%s    通过str() 字符串转换来格式化
%o    ⼋进制整数
%x    ⼗六进制整数(⼩写字母)
%X    ⼗六进制整数(⼤写字母)
%e    指数(⼩写'e')
%E    指数(⼤写“E”)
%f    浮点实数
%g    %f和%e 的简写
%G    %f和%E的简写
下⾯来个输⼊输出的简单的案例吧:打印⼀张名⽚,Name:毒逆天,Gender:男
print("Name:%s,Gender:%s"%(name,gender))【注意引号后⾯没有,哦】
In [16]:
#定义⼀个变量name,⽤户输⼊将赋值给name
name=input("请输⼊⽤户名:")
#定义⼀个变量gender,⽤户输⼊将赋值给gender
gender=input("请输⼊性别:")
#多个变量输出
print("Name:%s,Gender:%s"%(name,gender))
请输⼊⽤户名:毒逆天
请输⼊性别:男
Name:毒逆天,Gender:男
输出⽤:Console.Write Console.WriteLine
In [17]:
%%script csharp
Console.Write("dnt.dkill/now");
Console.WriteLine("带你⾛进中医经络");
python的类怎么输出printf
dnt.dkill/now带你⾛进中医经络
C#⽤@来转义字符,不管你是转义字符还是换⾏,通杀
In [18]:
%%script csharp
Console.WriteLine(@"\\\\\\\");
\\\\\\\
In [19]:
%%script csharp
Console.WriteLine(@"我请你吃饭吧~
晚上吃啥?
去厕所,你说呢?")
我请你吃饭吧~
晚上吃啥?
去厕所,你说呢?
Csharp输⼊输出的简单的案例:打印⼀张名⽚,Name:毒逆天,Gender:男
C#:Console.WriteLine($"Name:{name},Gender:{gender}");
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 输出
5.
类型(值),eg:int(),long(),float(),str(),list(),set()...等等
Python没有 double类型哦~
扩:转换成 16进制:hex()、转换为 8进制:oct()
In [20]:
# 求和
num1=input("输⼊第⼀个数字")
num2=input("输⼊第⼆个数字")
print("num1+num2=%d" %(int(num1)+int(num2)))
输⼊第⼀个数字1
输⼊第⼆个数字2
num1+num2=3
C#:该案例推荐使⽤int.TryParse,我这边就⽤常⽤的Convert系列了【⽀持类型⽐较多】Convert.ToInt64(),Convert.ToDouble(),Convert.ToString()...
//类型转换
Console.WriteLine("输⼊第⼀个数字:");
var num1 = Console.ReadLine();
Console.WriteLine("输⼊第⼆个数字:");
var num2 = Console.ReadLine();
Console.WriteLine($"num1+num2={Convert.ToInt32(num1) + Convert.ToInt32(num2)}");
6.
算术运算符编程语⾔基本上差不多,Python多了个//取商(%是取余)和幂**,来个案例:In [21]:
num=9
print("num=9,下⾯结果是对2的除,取余,取商操作:")
print(num/2.0)
print(num%2.0)
print(num//2.0)
print("2^3=%d"%2**3)
num=9,下⾯结果是对2的除,取余,取商操作:
4.5
1.0
4.0
2^3=8
Python3现在这样写也⾏,推荐和其他语⾔写法⼀致(不然你⽤惯了Python,切换的时候会出事的)In [22]:
num=9
print("num=9,下⾯结果是对2的除,取余,取商操作:")
print(num/2)
print(num%2)
print(num//2)
print("2^3=%d"%2**3)
num=9,下⾯结果是对2的除,取余,取商操作:
4.5
1
4
2^3=8
+=-=*=/=%=**=//=这些就不⽤详说了吧?
举个例⼦:c += a等效于c = c + a
注意下,Python中不见得等效,Python都是引⽤,这个先不说后⾯说
C#常⽤数学⽅法都在Match类中
In [23]:
%%script csharp
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));
num=9,下⾯结果是对2的除,取余,取商操作:
4.5
1
4
8
说Python像外国版的易语⾔,这边就可以看出来⼀点了,如果再结合Python命名规则就感觉在阅读⽂章⼀样先说说Python的逻辑运算符:与and或or⾮not,这个倒是跟C、C#、Java等⼤⼤不同,和SQL倒是差不多
关系运算符和其他语⾔基本上差不多(==!=<>><>=<=)
就⼀点不⼀样:不等于也可以⽤<>,这是兼容SQL的写法吗?
来个if else基础语法:括号可加可不加,但是记得加:。不⽤⼤括号,但是if⾥⾯的代码注意缩进
In [24]:
age=19
if age>=18:
print("成年了")
成年了
再来个嵌套的:注意哦~ else if在python⾥⾯简写成了:elif
In [25]:
age=24
if age>=23:
print("七⼤姑⽈:⼯作了吗?⼋⼤姨问:买房了吗?异性说:结婚了吗?")
elif age>=18:
print(age)
print("成年了哇")
else:
print("好好学习天天向上")
七⼤姑⽈:⼯作了吗?⼋⼤姨问:买房了吗?异性说:结婚了吗?
结合前⾯知识,再来个案例:
In [26]:
input_int=int(input("请输⼊(1-7)"))
#if后⾯的:,tab格式,else if 现在是elif
if input_int==1:
print("星期⼀")
elif input_int==2:
print("星期⼆")
elif input_int==3:
print("星期三")
elif input_int==4:
print("星期四")
elif input_int==5:
print("星期五")
elif input_int==6:
print("星期六")
elif input_int==7:
print("星期⽇")
else:
print("别闹")
请输⼊(1-7)2
星期⼆
C# if else单⾏代码可以不⽤写括号

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。