- 无言以对 评论:
厉害了我的哥,开始整Python了。
- 2017-11-12 09:07:57
- 回复
- 孤单又灿烂的人 回复 无言以对
O(∩_∩)O哈哈~,没事学着玩。
- 2017-11-12 09:09:29
- 回复
input()
、print()
例子:
name=input()
print(name)
整形、浮点型、字符串、布尔型、list(列表类型)、tuple(元组类型)、dict(字典类型)、set类型
转义字符用\同php。当有很多需要转义时,要加入很多\,Python的简便方式使用r’’,单引号中的字符串默认不转义。当需要多行换行书写代码,使用’’’…’’’三个引号来包含内容。三个引号前面也可以加r。
例子:
print('''line1
line2
line3''')
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。整形、浮点型、字符串同PHP。
list列表类型,列表是一个有序集合,类似于PHP的数组,访问列表元素通过下标访问,向列表追加元素使用append
例子:
x = ['hx','hx','sss']
x.append('ll')
print(x) //['hx', 'hx', 'sss', 'll']
x[0] //hx
x[-1] //ll
x.pop() //删除末尾元素ll,['hx', 'hx', 'sss']
x.pop(1) //删除索引为1的元素['hx', 'sss']
x.insert(1,'dd') //将元素dd添加到索引为1的位置 ['hx','dd','sss']
和列表类型类似,但是一旦初始化元组,就不能改变其中的内容了。改变会报错的.
例子:
t = (1,2)
t[0]=2 //会报错
print(t) //(1,2)
x = (1,) //定义一个元素的元组
v = (1,2,['x','y'])
v[2][0]='d'
print(v) //(1,2,['d','y'])
//因为元组的三个元素为list本身类型没变,所以第三个元素内部数据改变是可以的,但是不能把第三个数据换成其他类型的数据
key-value结构,具有极快的查找速度,类似于js的对象
例子:
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}
和list比较,dict有以下几个特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list相反:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
dict的key必须是不可变对象。
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
例子:
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
向set中添加key
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
删除set中的key
>>> s.remove(4)
>>> s
{1, 2, 3}
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
在Python中,对于不可变对象,调用对象的任何方法,都不会改变对象本身,比如:整形、浮点型、字符串、tuple等。
例子:
>>> x = 'abc'
>>> x.replace('a', 'A')
'Abc'
>>> x
'abc'
虽然使用replace函数替换了a,但是x本身没有变,可以将替换后的值赋给另外一个变量,这样保证了不可变对象永远不变
使用b’’,如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
例子:
x=b'ABC
同c语言,使用%占位符
例子:
print('hello %s ,your id is %d' % ('hx',10))
//当要表示%时,再加一个%转义,当只有一个值时,%后面的括号可以省略.
if 条件:
其他语句
例子:
age = 3
if age >= 18:
print('your age is', age)
print('adult')
else:
print('your age is', age)
print('teenager')
注意严格的缩进代码风格,否则代码会报错
for循环
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
while循环
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
注意:循环迭代的是list或者tuple中的元素.
>>> int('123') //整形
123
>>> int(12.34)
12
>>> float('12.34') //浮点型
12.34
>>> str(1.23) //字符串
'1.23'
>>> str(100)
'100'
>>> bool(1) //布尔型
True
>>> bool('')
False
def my_abs(x):
if x >= 0:
return x
else:
return -x
启动Python解释器,用from abstest import my_abs来导入my_abs()函数,定义空函数使用pass语句
def nop():
pass
如果要对参数类型做检测,只允许整数和浮点数类型的参数。数据类型检查可以用内置函数isinstance()实现:
def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x
注:如果返回值有多个,返回的类型是元组(tuple)
Python中有5种参数类型:位置参数、默认参数、可变参数、关键字参数、命名关键字参数。
(1).位置参数
def dd(x):
return xx
//上面的x就是一个位置参数
(2).默认参数
def dd(x,n=2):
while n>0:
n = n-1
x = x + n
return x
//上面的n就是默认参数,因为有默认值
//注:位置参数必须放在默认参数前面,不然会报错
(3).可变参数
所谓可变参数,就是传入的参数个数是可以变化的。要定义一个可变参数,只需要在参数前面加上,可变参数允许你传入0个或任意个参数,在函数调用时自动组装成tuple.
def dd(numbers):
s = 0
for n in numbers:
s = s+n
return s
>>> dd(1,2,3,4)
10
此时传入任意个参数,都不会报错,如果要传入list和tuple只需要在对应的元素前加,例如:
>>> num = [1,2,3,4]
>>> dd(num)
10
>>> dd(num) //报错
Traceback (most recent call last):
File "
" , line 1, in <module>File "F:\Python\test.py", line 26, in dd
s = s+n
TypeError: unsupported operand type(s) for +: 'int' and 'list'
>>>
(4).关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。
def dd(name,age,height):
print('name: ',name,'age: ',age,'other: ',height)
>>> dd('hx',23,city='chengdu',location='wenjiang')
name: hx age: 23 other: {'city': 'chengdu', 'location': 'wenjiang'}
>>> dd('hx',23,city,location) //传入的关键字参数必须是键值对,不然会报错
Traceback (most recent call last):
File "
" , line 1, in <module>NameError: name 'city' is not defined
>>>
>>> dd('hx',23) //可以不传入关键字参数
name: hx age: 23 other: {}
>>>
//还可以直接传入一个dict,前面加上
>>> extra = {'city':'chengdu','location':'wenjiang'}
>>> dd('hx',23,**extra)
name: hx age: 23 other: {'city': 'chengdu', 'location': 'wenjiang'}
>>>
(5).命名关键字参数
命名关键字参数就是把关键字参数的参数名字进行了约束,进行约束后,就不能传入规定好的参数名以外的参数,否则会报错。命名关键字参数可以有默认值。
def dd(name, age, , city, job): //命名关键字参数放在号的后面,如果有可变参数,就不需要了,如果不加就变成位置参数了
print(name, age, args, city, job)
>>> dd('xx',23,city='chengdu',job='engineer')
xx 23 chengdu engineer
>>> dd('xx',23,dsdas='chengdu',eqweq='engineer')
Traceback (most recent call last):
File "
" , line 1, in <module>TypeError: dd() got an unexpected keyword argument 'dsdas'
>>>
def dd(name, age, args, city, job):
print(name, age, args, city, job)
>>> dd('hx',12,1,2,3,city='beijing',job='coder')
hx 12 (1, 2, 3) beijing coder
>>> dd('hx',12,1,2,3,citys='beijing',jobs='coder')
Traceback (most recent call last):
File "
" , line 1, in <module>TypeError: dd() got an unexpected keyword argument 'citys'
>>>
仅此来记录学习Python的路程, = =!!!
转载请注明出处,谢谢!!
评论一下