【1】语法基础----(1)[基础数据类型]

1.整数

2.浮点数

3.字符串

4.列表

5.元组

6.索引切片

7.不可变数据类型探究

8.范围赋值,单独赋值详解


Python 支持四种不同的数值类型:

  • 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。
  • 长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。
  • 浮点型(floating point real values) - 浮点型由整数部分与小数部分组成。小数有精度
  • 复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

【1】整型用 [int] 表示,python2中用L表示长整型,python3没有长短之分。

#Python2:
>>> a = 3248123846172346712364713284
>>> a
3248123846172346712364713284L
#Python3:
>>> a = 3248123846172346712364713284
>>> a
3248123846172346712364713284
#查看数据类型type()
>>> type(a)
<class 'int'>

 【2】浮点数 [float] 即小数,python采用四舍6入5看齐规则取代4舍五入规则,这样可将误差降到最低。

      round()函数返回四舍5入值    

>>> a = 5.21534
>>> round(a,2)
5.22
>>> round(a,3)
5.215
>>> round(a)
5.0
>>> type(2.323)
<type 'float'>
(1)要求保留位数的后一位如果是4或者4以下的数字,则舍去, 例如 5.214保留两位小数为5.21。
(2)如果保留位数的后一位如果是6或者6以上的数字,则进上去, 例如5.216保留两位小数为5.22。
(3)如果保留位数的后一位如果是5,且该位数后没有数字。要根据保留位数的那一位决定是舍去还是进入:如果是奇数则进入,如果是偶数则舍去。如:5.215保留两位小数为5.22,5.225保留两位小数为5.22。
(4) 如果保留位数的后一位如果是5,且该位数后有数字。则进上去,例如5.2152保留两位小数为5.22,5.2252保留两位小数为5.23,5.22500001保留两位小数为5.23。

* 复数 complex  复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

>>> type(1+2j)
<type 'complex'>

【*】布尔值:TrueFalses .[0非空是真,0或空为假。]

>>> type(True)
<type 'bool'>
>>> type(False)
<type 'bool'>

[3]字符串[str]:str是一个不可变的数据类型如:a='abc',a[1]='e'会报错。但是可以重新给a赋值,如a='efg'

(1)创建字符串给变量赋值用,可用  ’str’,   ’’str’’,  ‘’’str’’’, ”””str”””)

e = ’abc’

e = ’’abc’’

e = ‘’’abc‘’’ 

e = “””abc”””

(2)访问字符串的方法:【索引 + 切片 + for循环】

   2.1:字符串索引访问:如:a='hello world',a[0]根据括号里面填写的值获取对应位置上的数据,从左向右从0开始。从右向左从-1开始。

>>> a = 'wangyunlong1992'
>>> a[0]
'w'
>>> a[-1]
'2'

  2.2:字符串切片访问取一个范围的值,特点:左闭右开。在有步长时,是包含本身的。a='helloworld' a[0:4] 值:hell最后的o是取不到的。a[x:y:z] x表示开始的索引,y表示结束的索引,x表示步长

>>> a = 'wangyunlong1992'
>>> a[0:-1]
'wangyunlong199'
>>> a[0:]
'wangyunlong1992'
>>> a[:]
'wangyunlong1992'
>>> a[-4:-1]
'199'
>>> a[1:3]
'an'
>>> a[::-1]
'2991gnolnuygnaw'
>>> a[::-2] #步长为-2
'29gonynw'
>>> a
'wangyunlong1992'
>>> a[-4:-1]
'199'
>>> a[-1:-4:-1]步长为-1,索引不变,-1=2991gnolnuygnaw,然后-1,-4=299
'299'
>>> a[-1:-4:-1][:1];先进行 a[-1:-4:-1]的访问值为299,在对299进行[:-1]的切片,此时索引重新维护,运算: a[-1:-4:-1][:-1] ----299[:-1]----->2
'2'

2.3:字符串迭代访问for循环

>>> a = 'wang'
>>> index = 0
>>> for var in a:
...     print(a[index])
...     index +=1
w
a
n
G>>> a= '123'
>>> for var in list(a):print(var)
1
2
3

3字符串加法:

>>> a = 'wang'
>>> b = 'yun'
>>> c = 'long'
>>> print('a+b+c结果为:',a+b+c)
a+b+c结果为: wangyunlong

4)字符串乘法:

>>> a = '8'
>>> a * 2
'88'
>>> a = 'wyl_'
>>> a * 3
'wyl_wyl_wyl_'

5)重新更新赋值:

>>> a = "wangbang"
>>> print("更新字符串:",a[:4] + 'yunlong' )
更新字符串: wangyunlong

6)字符串清空:

乘法清空
>>> a =a * 0
>>> a
''
切片清空
>>> a = '123'
>>> a=a[3:9]
>>> a
''
注:字符串乘法:只能和整数相乘,字符串加法只能拼接一个新的字符串。

(7)字符串格式化:常用格式符:%s 表示字符串,%d格式化整数,%f格式化浮点数,可指定小数点后的精度。

>>> print("我叫:%s ,今年:%d 岁.身高:%0.2f" %('wangdalong',20,170))
我叫:wangdalong ,今年:20 岁.身高:170.00

(8)检查成员:in , not in

>>> a = 'wangyunlong'
>>> if 'wang' in a:
...     print('wang在a中')
wang在a中
>>> if 'ngol' not in a:
...     print('ngol不在a中')
ngol不在a中

(9)字符串取空格:

str.strip()
>>> a = '   abcd'
>>> a
'   abcd'
>>> a.strip()
'abcd'
>>>
>>> expr = '   2 +  3 '
>>> expr[5] 可以通过if匹配,如果条件成立就break
'+'
>>> expr[:5].strip()  通过切片获取2
'2'
>>> expr[5+1:].strip() 通过切片获取3
'3'

【3】列表[list]:序列都可以进行的操作包括索引,切片,加,乘,检查成员,列表可以包含任意字符类型如:[浮点数,整数,布尔值,整数列表,字符串列表,字符串]。

(1)创建访问列表(索引切片):

>>> a=[1,2,3,4,5,6,7,8,9,0]
 >>> a[-1:-10:-1]
[0, 9, 8, 7, 6, 5, 4, 3, 2]
>>> a[-1:0:-1]
[0, 9, 8, 7, 6, 5, 4, 3, 2]
>>> a = [None]*10 #创建十个0的列表,None表示空。 >>> a [None, None, None, None, None, None, None, None, None, None] #访问列表当没有这个元素时会报错如:
>>> a = [1,2,3] >>> a[5] IndexError: list index out of range #采用:切片访问不会报错如: >>> a [5:] [] #For循环迭代访问: >>> a=['a','b','c'] >>> index = 0 >>> for var in a: ... print(a[index]) ... index += 1 a b C >>> a = ['a','b','c'] >>> for var in a:print(var) a b c

(2)列表:拼接(加法) + (重复)乘法

>>> a = [1,2,3,'wang','yun',[1,2,3,4]]
>>> b = ['long','10','89']
>>> a + b
[1, 2, 3, 'wang', 'yun', [1, 2, 3, 4], 'long', '10', '89']
>>> a = [1,2,3]
>>> a * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
注意:列表通过切片单独加一个列表中的元素会报错(运算),必须保持范围对范围,或单独元素相加

>>> a = [1,2,3,4,5]
>>> a[0:2]
[1, 2]
>>> a[3]
4
>>> a[0:2] + a[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
>>> a[0:2] + a[3:]
[1, 2, 4, 5]

(3)列表的更新-通过索引或切片,切记如果切片步长大于1时,一个萝卜一个坑

>>> a = [1,2,3,4,5,6]
>>> a
[1, 2, 3, 4, 5, 6]
>>> a[0]
1
>>> a[0] = 'a'
>>> a
['a', 2, 3, 4, 5, 6]
>>> a[:2]
['a', 2]
>>> a[:2] = 'wangyunlong'
>>> a
['w', 'a', 'n', 'g', 'y', 'u', 'n', 'l', 'o', 'n', 'g', 3, 4, 5, 6]
>>> a[:2]
['w', 'a']
>>> a[:2] = ['wang','yun']
>>> a
['wang', 'yun', 'n', 'g', 'y', 'u', 'n', 'l', 'o', 'n', 'g', 3, 4, 5, 6]
>>> a[:2]
['wang', 'yun']
>>> a[:2] = 'admin','root'
>>> a
['admin', 'root', 'n', 'g', 'y', 'u', 'n', 'l', 'o', 'n', 'g', 3, 4, 5, 6]
>>> a[::2] = 'a'
ValueError: attempt to assign sequence of size 1 to extended slice of size 8
切记:通过切片赋值时,当步长大于1时,一个萝卜一个坑。

(4)删除清空列表中的元素:del list[x]

>>> a
['a', 'root', 'g', 'c', 'u', 'd', 'l', 'e', 'n', 'f', 3, 'g', 5, 'h']
>>> del a[0]
>>> a
['root', 'g', 'c', 'u', 'd', 'l', 'e', 'n', 'f', 3, 'g', 5, 'h']
#清空列表:
>>> a.clear()
>>> a
[]
#删除列表:
del a
a
NameError: name 'a' is not defined

(5)判断元素a是否存在

>>> a = [1,2,3,4,5]
>>> if 1 in a:
...     print('1在列表中')
...     1在列表中

(6)统计列表元素的个数:通过函数Len(list)

['a', 'b', 'c']
>>> len(a)
3

 【4】元组Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

(1)创建及访问元组与列表类似

>>> a = (1,2,3,4,5) #创建
>>> a[0]索引访问
1
>>> a[0:6] 切片访问
(1, 2, 3, 4, 5)
>>> a[:-1]
(1, 2, 3, 4)
>>> a = ()
>>> a
()
>>> a = (1,2,3)
>>> for var in a:print(var) 迭代访问
1
2
3
>>> a = ('a',) 切记当创建一个元素的元组时,用逗号隔开,不然创建的是一个元素,不是元组

>>> a

('a',)
>>> a
(1, 2, 3, 4, 5)
>>> del a #删除元组
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> a = (1,2,3,4)
>>> a[0]
1
>>> a[0] = 1 #不可变数据类型
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

元组本身不可变数据类型,但是可以通过切片方式进行更新

>>> temp=(1, 2, 4, 5)
>>> temp=temp[:2]+(3,)+temp[2:]
>>> temp
(1, 2, 3, 4, 5)

【6】单独赋值与范围赋值

>>> a = [1,2,3,4,5]
>>> a[0:2]
[1, 2]
>>> a[0:2] = [123] #范围赋值,如果是连续性赋值则可一对多
>>> a
[123, 3, 4, 5]
>>> a[0:2] = [1,2]
>>> a
[1, 2, 4, 5]
>>> a[0:2]
[1, 2]
>>> a[0:2] = '123'  #拆分
>>> a
['1', '2', '3', 4, 5]
>>> a[0:2:2]
['1']
>>> a[0:2:2] = '123' #不连续性赋,必须保持一对一。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 3 to extended slice of size 1

>>> a[0:2:2] = '1'
>>> a
['1', '2', '3', 4, 5]

 

返回------->>>

原文地址:https://www.cnblogs.com/wylhome/p/9110995.html