您的位置:首页 > 编程语言 > Python开发

Python学习 第4天 基本语法-变量、数据类型、运算符、流程控制

2017-02-19 08:18 956 查看
主要是参考http://www.cnblogs.com/yanxy/archive/2010/02/22/ILovePython.html,记录一下自已的心得体会。

一、变量

1、动态类型/强类型

动态类型:有些像js,一个变量可以先赋给数字,再赋给字符串,毫无影响。

强类型:i = 10; j = 'ss',如果要i+j,会报错,而js是可以这样的

2、布尔型

和js有些类似,0、空、空数组这些全算作False

3、引号



和js一样,单引号双引号都可以,多了一个三引号,类似C#的@"",这个就方便了。js没有这种,碰到要换行就要不停地"" + "",虽然回车时会自动处理,但还是不够爽

===============

查了一下,js也有一些处理方法:

var a = "ffffffffffffffffff\
fffffffffffffffffff";
console.log(a)


这种只是为了写着方便,前后是连着的,结果是一排f,而且不能再多出空行

孤陋寡闻了,没想到js也可以。。。用`这个符号就可以,即键盘Esc下面那个键,数字1左边那个,这个就和C#的@""一样了,是正儿八经的换行。



4、unicode:如果设置为UTF-8,则可以加u,如果本身就是ANSI,那这样写就会出错

VS下,设成UTF-8才能运行





用Notepad++打开,也是设成UTF-8才可以,用ANSI则直接支持中文,加u反而要报错





5、数组:支持类型混用,试了js也可以,数组长度可变

arr = ['a', 2, 3]



数组和字符串均可用这种【切片】方式,有些像SubString或substr之类

6、元组

使用()定义,其它差不多(据说速度更快),就是只有一个元素时也要后面跟上逗号,如test = [0,]

7、集合

常见集合的语法为:s = set(['a', 'b', 'c'])。不过set在Python 3.0中发生了较大的变化,创建一个集合的语法变成了:s = {1,2,3},用花括弧的方法,与后边要提到的dict类似。

如果在set中传入重复元素,集合会自动将其合并。这个特性非常有用,比如去除列表里大量的重复元素,用set解决效率很高


8、字典,就是键值对的哈希表了

最后就不总结了,照搬别人的吧

(1) Python是一种动态的强类型语言,在使用变量之前无须定义其类型,但是必须声明和初始化;
(2) “一切命名是引用”,Python中变量名是对象的引用,同一变量名可以在程序运行的不同阶段代表不同类型的数据;
(3) “一切数据是对象”,Python的所有数据类型都是对象,(相较C#)具有一致的使用方法;
(4) “把问题想得更简单一点”,Python的数值类型可以说只有两种:整形和浮点,忘掉C#里的各种数值类型吧;
(5) 注意区别str和unicode,Python的字符串类型有时候会让人发晕,请试着习惯它,另外不要忘了“切片”这个好工具。
(6) 多使用list, tuple, set 和 dict这几种“很Python”的数据类型,它们分别用[]、()、([])和{}定义。


二、运算符

1、**表示次方



/好像在2.X和3.X不一样,2.X是得到3,3.X是3.33,使用//才是得到3

整型除法返回浮点数,要得到整型结果,请使用//


2、自增

不支持i++这种了,只能 i = i + 1;

3、逻辑运算符

Python用关键字and、or、not代替了C#语言中的逻辑运算符&&、||和!


4、三目运算符

不是使用 ? : 这种形式了,而是 print 1 if(True) else 0 ,即:

条件为真 ? 条件为真时代码 : 条件为假时代码

条件为真时代码 if (条件为真) else 条件为假时代码

三、流程控制

1、if else

if后面要跟冒号,如果if后什么都不做,要写pass

if True:
pass


else if要写成elif,Oracle是elsif,其它是else if,为什么都要改这些约定俗成的东西。。。

2、switch

Python没有switch,可以用if else实现,也可以用dict实现,dict实现方法感觉不直观,以后再说吧

3、while、for

没有do while和foreach,有个range可以简化for

for i in range(10):
print i


break和continue差不多,Python循环多了个else功能

Python中的循环还支持else语句,它只在循环正常完成后运行(for和while循环),或者在循环条件不成立时立即运行(仅while循环),或者迭代序列为空时立即执行(仅for循环)。如果循环使用break语句退出的话,else语句将被忽略。




4、异常

try catch finally在python是try except finally

try还支持else

Python的try也支持else语句。如果有一些代码要在try没有发生异常的情况下才执行,就可以把它放到else中


5、列表内涵



6、动态表达式:eval(),exec,execfile()

js有用过eval,很有用,SQL也有拼字符串,C#没有这种动态语句,或者要很复杂才能实现(网上有搜了下方法,没具体试过)

eval()函数与exec()函数的区别:

eval()函数只能计算单个表达式的值,而exec()函数可以动态运行代码段。
eval()函数可以有返回值,而exec()函数返回值永远为None。


即eval("a=1")是不行的,只能a = eval("1")

exec("a=1")是可以,但a = exec("1")不行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐