1、Python是大小写敏感的语言。定义Str与str是两个不同变量。
2、使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。
# FileName : var.py i = 5 print(i) i = i+1 print(i) s = '''This is a multi-line string. This is the second line.''' print(s)
3、Python中程序不建议使用;结尾。一个;结尾说明一个逻辑行结束,当一个物理行只有一个逻辑行语句时,;是不需要的。Python建议程序一个物理行对应一个逻辑行,这样可以增加代码的可读性。
4、对于一般的简单语句,PyThon不允许以空格开始。这样会导致一个语法错误。
5、运算符与它们的用法
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
+ | 加 | 两个对象相加 | 3 + 5得到8。'a' + 'b'得到'ab'。 |
- | 减 | 得到负数或是一个数减去另一个数 | -5.2得到一个负数。50 - 24得到26。 |
* | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 | 2 * 3得到6。'la' * 3得到'lalala'。 |
** | 幂 | 返回x的y次幂 |
3 ** 4得到81(即3 * 3 * 3 * 3) |
/ | 除 | x除以y | 4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333 |
// | 取整除 | 返回商的整数部分 | 4 // 3.0得到1.0 |
% | 取模 | 返回除法的余数 | 8%3得到2。-25.5%2.25得到1.5 |
<< | 左移 | 把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1) | 2 << 2得到8。——2按比特表示为10 |
>> | 右移 | 把一个数的比特向右移一定数目 | 11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。 |
& | 按位与 | 数的按位与 | 5 & 3得到1。 |
| | 按位或 | 数的按位或 | 5 | 3得到7。 |
^ | 按位异或 | 数的按位异或 | 5 ^ 3得到6 |
~ | 按位翻转 | x的按位翻转是-(x+1) | ~5得到6。 |
< | 小于 | 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | 5 < 3返回0(即False)而3 < 5返回1(即True)。比较可以被任意连接:3 < 5 < 7返回True。 |
> | 大于 | 返回x是否大于y | 5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。 |
<= | 小于等于 | 返回x是否小于等于y | x = 3; y = 6; x <= y返回True。 |
>= | 大于等于 | 返回x是否大于等于y | x = 4; y = 3; x >= y返回True。 |
== | 等于 | 比较对象是否相等 | x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。 |
!= | 不等于 | 比较两个对象是否不相等 | x = 2; y = 3; x != y返回True。 |
not | 布尔“非” | 如果x为True,返回False。如果x为False,它返回True。 | x = True; not y返回False。 |
and | 布尔“与” | 如果x为False,x and y返回False,否则它返回y的计算值。 | x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。 |
or | 布尔“或” | 如果x是True,它返回True,否则它返回y的计算值。 | x = True; y = False; x or y返回True。短路计算在这里也适用。 |
6、在Python中没有switch
语句。你可以使用if..elif..else
语句来完成同样的工作。
number = 25 guess = int(input('Enter an integer : ')) if guess == number: print('Congratulations, you guessed it.') # New block starts here print('but you do not win any prizes!') # New block ends here elif guess < number: print('No, it is a little higher than that') # Another block # You can do whatever you want in a block ... else: print('No, it is a little lower than that') # you must habe guess > number to reach hear print('Done')
7、while 语句
# FileName: while.py number = 25 running = True while running: guess = int(input('Enter an integer : ')) if guess == number: print('Congratulations, you guessed it.') running = False elif guess < number: print('No, it is a little higher than that') else: print('No, it is a little lower than that') else: print('The while loop is over.') print('Down')
8、for语句,相比C++中的for循环,可以增加一个可选的else语句。循环正常结束时,都将执行else语句。
# FileName: for.py for i in range(0,5): print(i) else: print('The for loopp is over')
9、一个重要的注释是,如果你从for
或while
循环中 终止 ,任何对应的循环else
块将不 执行。使用关键字break可以做到该点。
10、在函数的第一个逻辑行的字符串是这个函数的 文档字符串 。注意,DocStrings也适用于模块 和类。
文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。 强烈建议 你在你的函数中使用文档字符串时遵循这个惯例。
你可以使用__doc__
(注意双下划线)调用printMax
函数的文档字符串属性(属于函数的名称)。请记住Python把 每一样东西 都作为对象,包括这个函数。我们会在后面的类 一章学习更多关于对象的知识。
如果你已经在Python中使用过help()
,那么你已经看到过DocStings的使用了!它所做的只是抓取函数的__doc__
属性,然后整洁地展示给你。你可以对上面这个函数尝试一下——只是在你的程序中包括help(printMax)
。记住按q 退出help
。
11、列表list的使用代码
# FileName: using_list.py # This is my shopping list shoplist = ['apple','mango','carrot','banana'] print('I have',len(shoplist),'items to puchase.') print('These items are:') for item in shoplist: print(item) print('/nI alse have to bur rice.') shoplist.append('rice') print('My shopping list is now',shoplist) print('I will sort the list now') shoplist.sort() print('Sorted shopping list is',shoplist) print('The first item i will buy is',shoplist) olditem = shoplist[0] del shoplist[0] print('I bought the',olditem) print('My shopping list is now',shoplist) wuya = [] wuya.append(5) wuya.append(6) for item in wuya: print(item) else: print('for loop is over!')
12、元组使用代码
# FileName: using_tuple.py zoo = ('wolf', 'elephant', 'penguin') print('Number of animals in the zoo is', len(zoo)) new_zoo = ('monkey', 'dolphin', zoo) print('Number of animals in the new zoo is', len(new_zoo)) print('All animals in new zoo are', new_zoo) print('Animals brought from old zoo are', new_zoo[2]) print('Last animal brought from old zoo is', new_zoo[2][2])
13、字典dict使用代码
# Filename: using_dict.py # 'ab' is short for 'a'ddress'b'ook ab = { 'Swaroop' : '[email protected]', 'Larry' : '[email protected]', 'Matsumoto' : '[email protected]', 'Spammer' : '[email protected]' } print("Swaroop's address is %s" % ab['Swaroop']) # Adding a key/value pair ab['Guido'] = '[email protected]' # Deleting a key/value pair del ab['Spammer'] print('/nThere are %d contacts in the address-book/n' % len(ab)) for name, address in ab.items(): print('Contact %s at %s' % (name, address)) if 'Guido' in ab: # OR ab.has_key('Guido') print("/nGuido's address is %s" % ab['Guido'])
14、列表、元组和字符串都是序列,但是序列是什么,它们为什么如此特别呢?序列的两个主要特点是索引 操作符和切片 操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。
# Filename: seq.py shoplist = ['apple', 'mango', 'carrot', 'banana'] # Indexing or 'Subscription' operation print('Item 0 is', shoplist[0]) print('Item 1 is', shoplist[1]) print('Item 2 is', shoplist[2]) print('Item 3 is', shoplist[3]) print('Item -1 is', shoplist[-1]) print('Item -2 is', shoplist[-2]) # Slicing on a list print('Item 1 to 3 is', shoplist[1:3]) print('Item 2 to end is', shoplist[2:]) print('Item 1 to -1 is', shoplist[1:-1]) print('Item start to end is', shoplist[:]) # Slicing on a string name = 'swaroop' print('characters 1 to 3 is', name[1:3]) print('characters 2 to end is', name[2:]) print('characters 1 to -1 is', name[1:-1]) print('characters start to end is', name[:])
15、参考
如果你想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单 对象 ),那么你必须使用切片操作符来取得拷贝。如果你只是想要使用另一个变量名,两个名称都 参考 同一个对象,那么如果你不小心的话,可能会引来各种麻烦。
# Filename: reference.py print('Simple Assignment') shoplist = ['apple', 'mango', 'carrot', 'banana'] mylist = shoplist # mylist is just another name pointing to the same object! del shoplist[0] print('shoplist is', shoplist) print('mylist is', mylist) # notice that both shoplist and mylist both print the same list without # the 'apple' confirming that they point to the same object print('Copy by making a full slice') mylist = shoplist[:] # make a copy by doing a full slice del mylist[0] # remove first item print('shoplist is', shoplist) print('mylist is', mylist) # notice that now the two lists are different
16、python中使用中文,需要在程序代码第一行中加入编码设置语句,格式可以有多种,以便解释器可以知道该文件编码:
# -*- coding: cp936 -*-
为其中方式之一.