欧酷网

您的位置:主页>算法>

python学习相关02

001循环与条件语句

1.Python可有效避免循环else
相同缩进级别的if 和 else相互搭配,不会像c语言一样实行就近原则

2.条件表达式–三元操作符
可以使用一条语句实现条件判断和赋值操作

 x,y=4,5>>> small = x if x<y else y>>> small

3.断言 assert
当关键字assert后的条件为假时,程序自动崩溃并抛出AssertionError

>>> assert 3>4Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    assert 3>4AssertionError

一般用它在程序中置入检查点,当需要确保程序中的某个条件一定为真时才能让程序工作,此时assert非常有用

4.while循环
while 条件:
循环体(为真时执行循环体)
注意每执行一次循环体,条件的 i 就要+1

5.for循环
for 目标 in 表达式 //目标是变量,表达式是列表
循环体

>>> favorite = 'bts'>>> for t in favorite:
	print(t,end='')

	bts

在列表中的情况

>>> member = ['v','jimin','suga']>>> for each in member:
	print(each,len(each))

	v 1jimin 5suga 4>>> 

6.range()函数
for的内置函数,用于生成随机数,生成一个从start开始到stop参数的值,如range(1,5)生成的数为1~4
step=1是默认的,默认每次增加的数为1,称为步进,也可以为负数

range(1, 5)>>> list(range(1,5))[1, 2, 3, 4]

7.两个关键的语句
break 与 continue
break:终止当前循环,跳出循环体
continue:终止本轮循环并开始下一轮循环

>>> for i in range(10):
	if i%2 != 0:
		print(i)
		continue
	i += 2
	print(i)

	21436587109

002列表(索引从0 开始)

打了激素的数组
1.普通列表,混合列表,空列表

 bts = ['金硕珍','闵玧其','郑号锡','金南俊','朴智旻','金泰亨','田柾国']>>> bts['金硕珍', '闵玧其', '郑号锡', '金南俊', '朴智旻', '金泰亨', '田柾国']>>> number[1,2,3,4,5]
>>> number=[1,2,3,4,5]>>> number[1, 2, 3, 4, 5]

2.向列表末尾添加元素
使用append(),一次只能添加一个,超过会报错

>>> number.append(7)>>> number[1, 2, 3, 4, 5, 7]

使用extend(),可以添加其他列表

>>> number.extend([5,7])>>> number[1, 2, 3, 4, 5, 7, 5, 7]>>> 

使用insert()插入到列表的任意位置,注意索引是从[0]开始

>>> number[1, 2, 3, 4, 5, 7, 5, 7]>>> number.insert(2,6)>>> number[1, 2, 6, 3, 4, 5, 7, 5, 7]>>> 

3.从列表中获取元素
从元素的索引值从列表中获取单个元素,注意索引是从0开始的

>>> number[1, 2, 6, 3, 4, 5, 7, 5, 7]>>> number[2]6

4.从列表删除元素
remove(),可以不知道元素的位置,但是必须知道元素的值,删除后还可以接着使用被删除的值
remove是个函数,使用方法是列表.remove(元素变量)

del [ ]知道元素位置,删除的元素之后不能再使用
del是语句,直接使用,标出元素位置 ,如del[1]

pop(),从列表中取出最后一个元素并返回给你接着使用,相当于弹出栈顶元素
实际上,pop()可以弹出列表中任意位置的元素,只要知道索引,加上参数即可

5.列表分片/切片slice
利用索引值,每次可以从列表中获取一个元素,如果需要一次性获取多个元素,利用列表分片即可实现,原列表不发生变化
列表名称[第一个元素的索引值:第二个元素的索引值的后一个]
左闭右开

>>> bts = ['金南俊','金硕珍','闵玧其','郑号锡','朴智旻','金泰亨','田柾国']>>> bts[1:4]['金硕珍', '闵玧其', '郑号锡']

使用[ : ] 可以复制列表,进行改动,并不改变原列表

003列表的一些常用操作符

>>> list1 = [123,234]>>> list2 = [234,111]>>> list1 > list2False

比较,默认从索引为0的开始比较只要有一个为false就不再比较后面的
and / in / not in / * / *=等等

004列表的一些内置函数

dir(list)
[‘add’, ‘class’, ‘contains’, ‘delattr’, ‘delitem’, ‘dir’, ‘doc’, ‘eq’, ‘format’, ‘ge’, ‘getattribute’, ‘getitem’, ‘gt’, ‘hash’, ‘iadd’, ‘imul’, ‘init’, ‘init_subclass’, ‘iter’, ‘le’, ‘len’, ‘lt’, ‘mul’, ‘ne’, ‘new’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘reversed’, ‘rmul’, ‘setattr’, ‘setitem’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]

count()计算参数在列表中出现的次数

>>> list1 = [123,234,234,234,456,678,454]>>> list1.count(234)3

index(),返回参数在列表中的位置,即索引值

>>> list1 = [123,234,234,234,456,678,454]>>> list1.count(234)3>>> list1.index(123)0>>> list1.index(234,1,4)1>>> //从索引值14范围内,234第一次出现的索引位置

reverse(),将整个列表原地反转,逆排序

sort(),使用指定的方法对列表元素进行排序,默认的是按从小到大进行排序

>>> list1 = [2,3,5,1,2,7,9]>>> list1.sort()>>> list1[1, 2, 2, 3, 5, 7, 9]>>> list1.reverse()>>> list1[9, 7, 5, 3, 2, 2, 1]>>> 

sort的参数有三个
sort(func, key, reverse=false)此时默认的是正排序,如果将reverse参数改为true,则就逆排序

>>> list1.sort(reverse=True)>>> list1[9, 7, 5, 3, 2, 2, 1]

拷贝与直接赋值的区别

>>> list2 = list1[:]>>> list2[9, 7, 5, 3, 2, 2, 1]>>> list3 = list1>>> list3[9, 7, 5, 3, 2, 2, 1]>>> list1.sort()>>> list1[1, 2, 2, 3, 5, 7, 9]>>> list2[9, 7, 5, 3, 2, 2, 1]>>> list3[1, 2, 2, 3, 5, 7, 9]>>> 

拷贝之后,对原列表进行的操作对拷贝后的列表不影响,但是直接赋值的列表会和原列表进行一样的操作,直接赋值相当于起了个别的名字,多了一个指向他的标签

004元组

1.元组的定义
元组和列表是近亲关系,列表适用于存储在程序运行期间可能变化的数据集,列表是可以修改的,但是有时需要创建一组不可修改的元素,python将不能修改的值称为不可变的,不可变得列表被称为元组
注意元组使用圆括号而不是列表的方括号来标识,逗号是最重要的

想要创建一个空元组,若要想创建只有一个元素的元组,记得加逗号,不然类型会出错

>>> temp1 = (1)>>> type(temp1)<class 'int'>>>> temp2 = 2,3,4,>>> type(temp2)<class 'tuple'>

创建只有一个元素的元组

>>> temp3 = (2,)>>> type(temp3)<class 'tuple'>>>> 

2.元组的更新和删除
对列表的更新常使用切片的方法,那么对于元组呢
虽然不能修改元组的元素,但是可以给存储元组的变量赋值,因此,如果要修改,可以重新定义整个元组

>>> temp = ('闵玧其','金泰亨','金南俊')>>> temp = temp[:2]+('朴智旻',)+temp[2:]>>> temp('闵玧其', '金泰亨', '朴智旻', '金南俊')>>> del temp>>> temp
Traceback (most recent call last):
  File "<pyshell#49>", line 1, in <module>
    temp
NameError: name 'temp' is not defined>>> 

3.元组的相关操作符
拼接:+ 左右类型必须一致,是元组都是元组
逻辑操作符,成员操作符,

005字符串的内置方法

  1. capitalize() 把字符串的第一个字符改为大写
  2. casefold() 把整个字符串中的所有字符改为小写
  3. center(width) 将字符串居中,并使用空格填充至长度width的新字符串,长度为参数
  4. count(sub[,start[,end]]) 返回sub在字符串里出现的次数,start和end参数表示范围,可选
  5. endswith(sub[,start[,end]]) 返回的结果是布尔值,检查字符串是否以sub子字符串
  6. expandtabs([tabsize=8]) 把字符串中的tab符号(\t)转换为空格,如不指定参数,默认的空格数是tabsize=8
  7. find(sub[,start[,end]])检测sub是否包含在字符串中,如果有就返回索引值,否则返回-1
  8. index(sub[,start[,end]])与find的作用一样,只是当sub不在字符串中时不是返回-1而是产生一个异常
  9. isalum()如果字符串至少有一个字符并且所有的字符都是字母或数字则返回true否在返回false
    10.isalpha()如果字符串至少有一个字符且所有字符都是字母则返回true
>>> str2 = '防弹少年团'>>> str2.center(40)'                 防弹少年团                  '>>> len(str2)5>>> str2.count('少')1>>> str2'防弹少年团'>>> str3 = ('\tb\tts')>>> str3.expandtabs()'        b       ts'>>> str3.expandtabs(5)'     b    ts'>>> str3.find('t')3>>> str3.find('v')-1>>> 

006字符串的格式化

1.按照统一的规格去输出字符串

>>> "{0} love {1}.{2}".format("I","bts","com")'I love bts.com'>>> 

字段0,1,2分别用花括号括起来表示字段,通过位置参数I,bts,com,传递给了format()方法,format()方法对字符串进行了格式化整理

注意,format()有两种参数,一种是上面例子所示的{}内的位置参数,一种叫做关键字参数

>>> "{a} love {b}.{c}".format(a="I",b="bts",c="com")'I love bts.com'>>> 

位置参数与关键字参数的结合,但是结合时,位置参数必须在关键字参数之前

>>> "{0} love {b}.{c}".format("I",b="bts",c="com")'I love bts.com'
>>> '{0:.1f}{1}'.format(27.658,'GB')'27.7GB'>>> #冒号表示格式化符号的开始,后面接的就是格式化符号。.1表示四舍五入保留一位小数点,f表示打印出定点数

2.字符串独自享有的操作符
%号在遇到数字时求余操作符,但是当 %c 遇到字符串时,就变为格式化字符及其ASCII码

>>> '%c'%77'M'>>> 

%s ,%d, %o, %x, %X, %f, %e 等

3.格式化操作辅助命令
m,n
m是显示的最小总宽度,n是小数点后的位数
+
用于在正数前面加正好
‘-’
用于左对齐
#
在八进制前显示‘0’,在十六进制前显示‘0x’
‘0’
显示的数字前面填充零来取代空格

>>> '%.2e'%27,658('2.70e+01', 658)>>> '%10d'%5'         5'>>> '%-10d'%5'5         '>>> '%+d'%5'+5'>>> '%+d'%-5'-5'>>> '%#o'%10'0o12'>>> '%#x'%108'0x6c'>>> '%#d'%10'10'>>> '%010d'%5'0000000005'>>> '%0-10d'%5'5         '>>> 

4.字符串转义字符的含义
’ 打印出一个单引号
"打印出一个双引号
\n 换行符
\t 制表符

>>> '\''"'">>> '\"''"'

相关文章推荐