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:\Users\wangzhigang\AppData\Local\Programs\Python\Python35-32\python.exe C:/Users/wangzhigang/PycharmProjects/untitled/Python/Day02/1017.py0
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 = 0while count < 9:
print("this count is ",count)
count += 1
print("This is end!")
执行结果:
this count is 0this 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 = 1while count < 10:
count += 1
if count%2 > 0: #非双数时跳出循环
continue
print(count) #打印双数
输出结果:
24
6
8
10
break用法:
count = 1while 1:
print(count)
count += 1
if count > 10: #当count大于10的时候跳出本循环
print("This is END!")
break
输出结果:
12
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中的整型可以用十进制、八进制和十六进制表示。
>>> 1010
>>> 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(\t)的空格数,默认为8个空格
new_names = "hello\tworld"print(new_names.expandtabs(15)) #expandtabs 设置字符串中tab(\t)的空格数,默认为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\nworld\nhello\nworld"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对比:
#extendname_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']
以上是 Python Day02 的全部内容, 来源链接: utcz.com/z/388553.html