http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
学过java和C的我接触Python的第一印象就是,哇!不需要声明变量类型!!!(我也不知道是好还是坏)
比如如果你想存储一个整形变量,直接就用 a = 2 就可以了(连分号也不需要,一行代表一个语句。。。。)
#整形 (用#表示注释)
a = 2
#浮点型
b = 2.1
#字符串
c = "abcdefg" (这里也可以用单引号‘’,好像没有区分)
#布尔型
d = True
e = False
#常量,当然这个常量不是真的不能弄,而是我们自己规定而已,所以让我们知道用全大写
PI = 3.14.......
转义字符的都是差不多的,只是有几个我不知道的//GG,比如
#如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许
#用'''...'''的格式表示多行内容
#三个单引号啊!!!!
>>> print('''line1
... line2
... line3''')
line1
line2
line3
还有一个神奇的 r ,r : 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r”表示”内部的字符串默认不转义。
具体看例子
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
其他的都差不多的。
哦,还有一个Python不用 || 、&& 、!
而是用 or 、 and 、 not (好抽象具体啊)
关于字符的unicode编码和AscII码没什么好说的,简单来说就是unicode包含AscII码,更多更全,而UTF-8更是Unicode的升级版(就是更加好,用就是了)
这时候我们不但要在编译器选择UTF-8无bom格式,另外还要在代码开头加上
# -*- coding: utf-8 -*-
这样就能确保我们在用utf-8编码和解析了
这里教了几个函数
ord() 函数获取字符的整数表示
chr() 函数把编码转换为对应的字符
len() 计算的是str的字符数 ; 如果换成bytes,就计算字节数
decode() 要把bytes变为字符串类型
encode() 以Unicode表示的str通过encode()方法可以编码为指定的bytes
是不是觉得有的函数感觉没有什么用?这里我们要知道一个知识点(我也是刚刚知道。。。。GG)
贴出例子,剩下的自己去上面的网子了解,自行理解
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
>>> len(b'ABC')
3
>>> len(b'\xe4\xb8\xad\xe6\x96\x87')
6
>>> len('中文'.encode('utf-8'))
6
而关于格式化,我个人觉得都差不多的,看看例子
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
>>> 'growth rate: %d %%' % 7
'growth rate: 7 %'
在java中,集合框架总的来说有 数组(这个好像不是~.~)、List 、Map 、 Set (大概吧)
python也差不多拉,我个人觉得
Python 的 set 相当于 Set
tuple:tuple一旦初始化就不能修改,当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,例子:
#通过classmates[0],classmates[-1] 调用
>>> classmates = ('Michael', 'Bob', 'Tracy')
#定义一个空的tuple
t = ()
#定义一个只有1个元素的tuple,必须加上逗号,
t = (1,)
list:list是一种有序的集合,可以随时添加和删除其中的元素,例子:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
#往list中追加元素到末尾
classmates.append('Adam')
#把元素插入到指定的位置
classmates.insert(1, 'Jack')
#要删除list末尾的元素,用pop()方法
>>> classmates.pop()
>>> classmates.pop(1) #指定位置
#把某个元素替换成别的元素,可以直接赋值给对应的索引位置
classmates[1] = 'Sarah'
dict :使用键-值(key-value)存储,直接例子:
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
>>> d['Adam'] = 67
>>> d['Adam']
67
#dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
#通过in判断key是否存在
>>> 'Thomas' in d
False
#删除一个key,用pop(key)方法,对应的value也会从dict中删除
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}
set:相当与数学中的集合,无序、不重复、确定的 集合 ,例子:
#创建一个set,需要提供一个list作为输入集合
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
#通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
>>> s.add(4)
>>> s
{1, 2, 3, 4}
#通过remove(key)方法可以删除元素
>>> s.remove(4)
>>> s
{1, 2, 3}
对于条件判断和循环也没什么好说的了,在C/C++和Java里面都用烂了
例子:
条件判断:
age = 20
if age >= 18:
print('your age is', age)
print('adult')
#注意不要少写了冒号:
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
#elif是else if的缩写,完全可以有多个elif,所以if语句的完整形式就是,
#用else if会报错的,我试过。。。。。。
age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
#这是因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成
#整数。Python提供了int()函数来完成这件事情
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00后')
循环:
#for循环
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
#Python提供一个range()函数,可以生成一个整数序列,再通过list()函数可以转换为
#list。比如range(5)生成的序列是从0开始小于5的整数:
>>> list(range(5))
[0, 1, 2, 3, 4]
sum = 0
for x in range(101):
sum = sum + x
print(sum)
# while循环
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
#在循环中,break语句可以提前退出循环
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前循环
print(n)
n = n + 1
print('END')
#在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶数,执行continue语句
continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
print(n)
这是我读廖雪峰的 Python 教程的Python基础部分,如果要看完整的当然要去作者廖雪峰那里看拉~.~,然后归纳一下这部分主要讲了数据类型(整形、浮点型、常量、布尔型、字符串等等)、数据结构(tuple、list、set、dict)、条件判断与循环(if 与 for\while)