0%

【Python】变量和数据类型

Python作为一门脚本语言与C#相比具有十分简易的语法,从数据类型这里就可见一斑:

数据类型

C#:

1
2
3
4
5
6
int a=5;
float b=3.2;
string c="Hello";
bool d=true;
if(d)Console.WriteLine(Convert.ToString(a+b));
else if(!d&&b>a)Console.WriteLine(c);

Python:

1
2
3
4
5
6
a=5
b=3.2
c="Hello"
d=True
if d:print(a+b)
else if not d and (b>a):print c

通过对比可以看出Python声明变量时不需要声明变量类型,直接赋值即可,语句结尾甚至不用添加分号。 并且可以直接输入“0x…”代表16进制数,如0x0a28d。科学记数法可写为xey的形式,如1.6e3=1.6*10^3。 直接将变量输入False或者True即可将变量初始化为布尔类型。逻辑运算符为and(&&),or(),not(!)括号内代表C#的逻辑运算符。 空值用None表示。

输出

1
2
3
print(a+b)
print c
print "11+5=",c

没错,有时连括号都可以省略。 用逗号连接各字符串,相当于C#的”+”,但是连接处会有一个空格 Python中的“+”连接虽无空格但只用于连接字符串 另外,Python不支持自加运算符++或—,若要使用请改为x+=1

注释

1
print(a+b) #打印a+b的值

井号注释掉一行,相当于C#的双斜线

变量的声名

特别注意的是,Python声明的变量是动态的,也就是说变量并不固定于某一个类型,这点与C系列语言均不同,如

1
2
a=5
a="Hello"

这是可以编译通过的,其中需要注意的是: 1.字符串初始化用双引号“”或单引号’’均可 2.变量名规则,这点倒是与C系列相同

转义字符

既然双引号用作字符串的声明,那么字符串里要用双引号怎么办? 学过C#的同学都只知道,用反斜线呗(\\),对了,这里python也可以这么用。但是,在python里你也可以用单引号声明字符串,这样字符串里就可以有双引号了!惊不惊喜?意不意外? 但是,要是我一行代码里反斜线、单引号、双引号都有怎么办?角度刁钻,但是python也可以解决,那就是用r加一对单引号

r’…’

这里r代表raw,单反发烧友都知道,原始数据。 那我要是还想换行怎么办?你这一原始我\\n也不能用了啊?别急,这还有:r加三对单引号,里面你可以任意换行

r’’’…’’’

C、C++、C#、Java跪

1
2
3
print "Hello!\nPython is so great!"
print r'''Hello!
Python is so great!'''

上面这俩输出结果相同。 由于某些Python版本差异,个别输出中文、日文等非英语字符时无法正常显示,这时就要在字符串前加u,代表其中是Unicode码。 那么,如果像C#这样:

1
2
string time="10:00",nexttime="11:00";
Console.WriteLine("Now time is {0},Next time is {1}",time,nexttime);

该如何实现呢?可以这样: time=10:00 nexttime=11:00 printf ‘Now time is %s,Next time is %s’ %(time,nexttime) 与C语言一样,%s代表string数据类型。