Python Day02

Python Day02

Python 循环控制

for循环

for语句是python中的循环控制语句。可用来遍历某一对象,还具有一个附带的可选的else块,主要用于处理for语句中包含的break语句。

for语句的格式如下:

>>>for <> in <对象集合>:

...    if <条件>:

...        break

...    if <条件>:

...        continue

...    <其他语句>

...else:

...    <>

...

#循环打印10个数(0-9),基本的循环

for n in range(10):
    print(n)

执行结果:

C:UserswangzhigangAppDataLocalProgramsPythonPython35-32python.exe C:/Users/wangzhigang/PycharmProjects/untitled/Python/Day02/1017.py
0
1
2
3
4
5
6
7
8
9

Process finished with exit code 0

#加上else模块

for n in range(100):
    if n < 20:
        print(n)
        continue
else:
    print("Hello")

如果for循环未被break终止,则执行else块中的语句。

break 在需要时终止for循环

continue 跳过位于其后的语句,开始下一轮循环。

注:range()函数。

    range([start,] stop [, step])

    * start  可选参数,起始数

    * stop   终止数,如果 range 只有一个参数x,则产生一个包含 0 至 x-1 的整数列表

    * step   可选参数,步长

while循环

Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

while 判断条件:
  执行语句……

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
执行流程图如下:

实例:

count = 0
while count < 9:
    print("this count is ",count)
    count += 1

print("This is end!")

执行结果:

this count is  0
this count is  1
this count is  2
this count is  3
this count is  4
this count is  5
this count is  6
this count is  7
this count is  8
This is end!

while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:

continue用法:

count = 1
while count < 10:
    count += 1
    if count%2 > 0:   #非双数时跳出循环
        continue
    print(count)      #打印双数

输出结果:

2
4
6
8
10

break用法:

count = 1
while 1:
    print(count)
    count += 1
    if count > 10:   #当count大于10的时候跳出本循环
       print("This is END!") 
    break

输出结果:

1
2
3
4
5
6
7
8
9
10
This is END!

数据类型

Python中的数据类型

Python中的变量不需要声明。每个变量在使用前必须要赋值,变量赋值以后才会被创建。在Python中,变量就变量,是没有类型的。
所说的“类型”是变量所指的内存中对象的类型。Python使用对象模型来存储数据,每一个数据类型都有一个内置的类,每新建一个数据,实际就是在初始化生成一个对象,所有数据都是对象。

对象三个特性
  • 身份:内存地址,可以用id()获取
  • 类型:决定了该对象可以保存什么类型值,可执行何种操作,需遵循什么规则,可用type()获取
  • 值:对象保存的真实数据

Python中的标准数据类型:

  * Numbers  (数字)

  * String (字符串)

  * List (列表)

  * Tuple (元组)

  * Dic (字典)  

 

(1) 数字

数字类型的分类:

  * int (整型)

  *  long (长整型)

  *  bool  (布尔)

  * complex (复数)

  *  float (浮点数)

int 整型

Python中的整型可以用十进制、八进制和十六进制表示。

>>> 10
10
>>> oct(10)
'0o12'
>>> hex(10)
'0xa'
>>> type 10
<class 'int'> >>> type(0xa) <class 'int'> >>> type(0o12) <class 'int'>

long 长整型

python2.*:
跟C语言不同,Python的长整型没有指定位宽,也就是说Python没有限制长整型数值的大小,
但是实际上由于机器内存有限,所以我们使用的长整型数值不可能无限大。
在使用过程中,我们如何区分长整型和整型数值呢?
通常的做法是在数字尾部加上一个大写字母L或小写字母l以表示该整数是长整型的,例如:
a = 9223372036854775808L
注意,自从Python2起,如果发生溢出,Python会自动将整型数据转换为长整型,
所以如今在长整型数据后面不加字母L也不会导致严重后果了。

python3.*
长整型,整型统一归为整型

bool 布尔

True 和 False   就是1和0

complex 复数

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注意,虚数部分的字母j大小写都可以,

浮点数

Python中的浮点数就是数学中的小数,类似C语言中的double,

在运算中,整数与浮点数运算的结果是浮点数。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的而浮点数运算则可能会有四舍五入的误差。

数字相关内建函数

字符串

字符串的常用操作

* 移除空白

* 分割

* 长度

* 索引

* 切片

字符串函数:

captalize        ==>字符串中的第一个字母大写 

names = "hello world"
print(names.capitalize())    #capitalize   字符串第一个字母大写

#执行结果:
Hello world

casefold    ==> 将字符串中的大写字母转换为小写

names = "HELLO WORLD"
print(names.casefold())       #casefold   将字符串中的大写字母转换为小写

#执行结果
hello world

center       ==>将字符串居中;可以设置左右填充的内容

names = "Hello World"
print(names.center(25,'*'))    #center     将字符串居中;可以设置左右填充的内容

#执行结果:
*******Hello World*******

count     ==>统计字符串中某个元素的个数;可以设置开始结束区间

names = "Hello World"
print(names.count('l'))         #count      统计字符串中某个元素的个数;可以设置开始结束区间

#执行结果:
3

endswith    ==>     字符串中以指定元素结尾,如果为真,则返回True,否则返回False;可以设置开始结束区间

names = "Hello World"
print(names.endswith('d'))   #endswith      字符串中以指定元素结尾,如果为真,则返回True,否则返回False;可以设置开始结束区间

#执行结果:
True

expandtabs   ==>设置字符串中tab( )的空格数,默认为8个空格

new_names = "hello	world"
print(new_names.expandtabs(15))   #expandtabs   设置字符串中tab(	)的空格数,默认为8个空格;

#执行结果:
hello world

find    ==>查找字符串中的元素,如果有这个元素,返回的是元素所在的下标;如果不存在,则返回-1;可以设置开始结束区间;

names = "Hello World"
print(names.find('d'))         #查找字符串中的元素,如果有这个元素,返回的是元素所在的下标;如果不存在,则返回-1;可以设置开始结束区间

#执行结果:
10

format    ==>格式化字符串

#format的三种形式:
#第一种:
print('{0}{1}{0}'.format('a','b','e'))
aba
#第二种:
print('{}{}{}'.format('a','b','c','d'))  #必须是一一对应的;
abc
#第三种:
print('{name} {age} '.format(age=25,name="wangzhigang"))
wangzhigang 25

index     ==>查找某个元素的索引下标,如果元素存在,则返回对应的下标;如果不存在,则报错

names = "Hello World"
print(names.index('o'))       #查找某个元素的索引下标,如果元素存在,则返回对应的下标;如果不存在,则报错;

#执行结果:
4
#如果不存在报错:
Traceback (most recent call last):
  File "C:/Users/wangzhigang/PycharmProjects/untitled/Python/Day02/1018.py", line 59, in <module>
    print(names.index('x'))       
ValueError: substring not found

isalnum    ==>检查判断字符串是否包含字母数字字符;

new_names = "hello"
print(new_names.isalnum())      
#isalnum    检查判断字符串是否包含字母数字字符;如果所有字符字母数字和至少有一个字符此方法返回 true,否则返回False
#执行结果: True 

##### new_names = "hello 123"

print(new_names.isalnum())

#执行结果: False

isalpha   ==>判断字符串中是否全部为字母,如果是则返回True,否则返回False;

new_names = "Helloworld"
print(new_names.isalpha())    #isalpha    判断字符串中是否全部为字母,如果是则返回True,否则返回False

#执行结果:
True

new_names = "Hello123"
print(new_names.isalpha()) 

#执行结果:
False

isdigit    ==>  判断字符串是否为数字

names_new = "123"
print(names_new.isdigit())      #isdigit   判断字符串是否为数字

#执行结果:
True

########
names_new = "Hello"
print(names_new.isdigit())      #isdigit   判断字符串是否为数字

#执行结果

False

islower   ==>判断字符串是否为小写字母

names_new = "hello"
print(names_new.islower())        #islower   判断字符串是否为小写字母

#执行结果:
True

names_new = "Hello"
print(names_new.islower())

#执行结果

False

isnumeric     ==> 判断字符串是否全部为数字

names_new = "123"
print(names_new.isnumeric())        #isnumeric   判断字符串是否全部为数字

#执行结果:
True

names_new = "123hello"
print(names_new.isnumeric())

#执行结果
False

istitle    ==>  检查字符串中的所有单词拼写首字母是否为大写,且其他字母为小写

names_new = "Hello World "
print(names_new.istitle())    #istitle    检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

#执行结果:
True
names_new
= "Hello world " print(names_new.istitle()) #执行结果 False

isupper    ==>检查字符串中的字母是否为大写,如果是,则返回True;否则返回False;

names_new = "HELLO1111"
print(names_new.isupper())      #isupper    检查字符串中的字母是否为大写,如果是,则返回True,否则返回False


#执行结果:
True

##########
names_new = "Hello1111"
print(names_new.isupper())

#执行结果
False

join    ==>将序列中的元素以指定的字符连接生成一个新的字符串;

names1 = "_"
names2 = ("wang","zhi","gang")
print(names1.join(names2))        #join   将序列中的元素以指定的字符连接生成一个新的字符串

#执行结果
wang_zhi_gang

ljust    ==>   返回一个字符串左对齐,并默认使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串,则返回原字符串。

names_new = "Hello"
print(names_new.ljust(10,'#'))    #ljust  返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。  (25,'#')   25,表示字符串的总长度    '#'表示填充的字符,填充的内容可以是特殊字符,可以是数字,可以是字母,但是不可以是多个字母。例如'wa';

#执行结果:
Hello#####

lower    ==>将字符串中的大写字母转换为小写字母;

names_new = "HEllO"
print(names_new.lower())     #lower    将字符串中的大写字母转换为小写

#执行结果:
hello

lstrip    ==>删除字符串左边的空格以及自定义字符;

names = "Hello"
print(names.lstrip('He'))    #删除字符串中左边空格以及自定义字符

#执行结果:
llo

maketrans    ==>用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串,表示转换的目标。注: 两个字符串的长度必须相同,为一一对应的关系。

intab = "abcde"
outtab = "12345"
trantab = str.maketrans(intab,outtab)
str_new = "This is a test chengxu..."
print(str_new.translate(trantab))

#执行结果:
This is 1 t5st 3h5ngxu...

replace   ==>  替换字符串中指定的字符,replace(self,old,new,count=None)

names_new = "hello"
print(names_new.replace('hello','world'))   #替换字符串指定的内容;replace(self, old, new, count=None)

#执行结果:
world

rfind   ==> 查找字符串中指定字符的下标,如果指定的字符有多个,则返回最右边字符的索引下标,可以指定开始和结束的区间,如果没有,则返回-1;

names_new = "hello"
print(names_new.rfind('x'))     #查找字符串中指定字符的下标,如果指定的字符有多个,则返回最右边字符的索引下标,可以指定开始和结束的区间,如果没有,则返回-1;

#执行结果:
3

rjust    ==> 返回一个原字符串右对齐,并使用空格填充至长度width的新字符串。如果指定的长度小于原字符串的长度,则返回原字符串。

names_new = "hello"
print(names_new.rjust(15,'#'))   # rjust  返回一个原字符串右对齐,并使用空格填充至长度width的新字符串。如果指定的长度小于原字符串的长度,则返回原字符串。

#执行结果:
##########hello

split    ==> 通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串;从左边开始分割

names_new = "hello world hello world"    #split  通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分割num个子字符串
print(names_new.split())                 #split语法:str.split(str="", num=string.count(str)). str 分隔符,默认为空格,num为分割次数
print(names_new.split('h',1))
print(names_new.split('h'))

#执行结果:
['hello', 'world', 'hello', 'world']
['', 'ello world hello world']
['', 'ello world ', 'ello world']

rsplit   ==>通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分割num个子字符串;从右边开始分割

names_new = "hello world hello world"
print(names_new.rsplit('h',1))


#执行结果:
['hello world ', 'ello world']

splitlines    ==>按照行分割,返回一个包含各行作为元素的列表。

names_new = "hello
world
hello
world"
print(names_new.splitlines())


#执行结果:
['hello', 'world', 'hello', 'world']

startswith   ==>检查字符串是否以某个字符开头,可以指定开始结束区间;

names_new = "hello"
print(names_new.startswith('h'))   #startswith   检查字符串是否以某个字符开头,可以指定开始结束的区间;


#执行结果:
True

strip    ==>去掉字符串左边的空格;

names_new = "   hello"
print(names_new.strip())    #strip  去掉字符串左边的空格


#执行结果:
hello

swapcase    ==>   对字符串中的字母进行大小写转换;

names_new = "HELLO world"
print(names_new.swapcase())   #对字符串中的字母进行大小写转换;


#执行结果:
hello WORLD

title     ==>字符串中以符号分割的字母开头转为大写;

names_new = "hello world_hello"
print(names_new.title())


#执行结果:
Hello World_Hello

列表

append    ==>追加,在原列表的最后追加字符串

name_list = ["wang","zhi","gang"]
name_list.append("Hello")
print(name_list)


#执行结果:
['wang', 'zhi', 'gang', 'Hello']

clear    ==>清空一个列表

name_list = ["wang","zhi","gang"]
name_list.clear()
print(name_list)

#执行结果:
[]

count   ==> 对列表中的值计数

name_list = ["wang","zhi","wang"]
print(name_list.count("wang"))  #对列表中的值计数

#执行结果:
2

extend   ==>append和extend都仅只可以接收一个参数;append是任意,甚至是tuple;extend只能是一个列表;

name_list = ["wang","zhi","wang"]
name_list.extend(["sun","mei","jun"])   #extend只能接收一个参数,只能是列表
print(name_list)


#执行结果:
['wang', 'zhi', 'wang', 'sun', 'mei', 'jun']

extend和append对比:

#extend
name_list = ["wang","zhi","wang"]
name_list.extend("sun")   #extend只能接收一个参数,只能是列表
print(name_list)

#执行结果:
['wang', 'zhi', 'wang', 's', 'u', 'n']


#append
name_list = ["wang","zhi","wang"]
name_list.append("sun")   #extend只能接收一个参数,只能是列表
print(name_list)

#执行结果:
['wang', 'zhi', 'wang', 'sun']

index   ==>打印列表值得索引下标

name_list = ["wang","zhi","gang"]
print(name_list.index("gang"))

#执行结果:
2

insert     ==>指定列表的索引下标,在其前面插入值

name_list = ["wang","zhi","gang"]
name_list.insert(1,"sun")
print(name_list)   # insert  指定列表的索引下标,在其前面插入值

#执行结果:
['wang', 'sun', 'zhi', 'gang']

pop    ==>默认删除列表中最后一个值,可以指定下标删除

name_list = ["wang","zhi","gang"]
name_list.pop()       #pop 默认删除列表中最后一个值,可以指定下标删除
print(name_list)


#执行结果:
['wang', 'zhi']

remove     ==>移除列表中指定的值,不能指定下标进行移除。

name_list = ["wang","zhi","gang"]
name_list.remove("wang")   #remove  移除列表中指定的值,不能指定下标进行移除。
print(name_list)


#执行结果:
['zhi', 'gang']

reverse    ==>对列表倒序排列;

name_list = ["wang","zhi","gang"]
name_list.reverse()       #reverse   对列表倒序排列
print(name_list)

#执行结果:
['gang', 'zhi', 'wang']
原文地址:https://www.cnblogs.com/mrwang1101/p/5969946.html