流程控制之for循环、基本数据类型及其内置方法

一 循环之for循环

1、for循环的语法与基本使用

1.1、什么是for循环

  循环就是重复做某事,for循环是python提供的第二种循环机制

1.2、为何要有for循环

  理论上for循环能做的,while循环也能做

  for循环在循环取值(遍历取值)比while循环更简洁

1.3、如何用for循环

语法:

for变量名 in 可迭代对象:#可以是列表、字典、字符串、元组、集合

  代码1

  代码2

  代码3

基本循环使用之循环取值

 

2、for循环应用

#案例1:遍历列表

简单版

l = ['alex_dsb','lxx_dsb','egon_nb']

for x in l:

  print(x)

 

复杂版

l = ['alex_dsb','lxx_dsb','egon_nb']

in < 0

while i <3:

  print(i)

  i+=1

#案例2:字典循环取值

简单版

dic = {'k1':111,'k2':222,'k3':333}

for k in dic:

print(k,dic[k])

复杂版:while喜欢可以遍历字典,麻烦

 

#案例3:字符串循环

简单版

msg = 'you can you up,no can no bb'

for x in msg:

  print(x)

每个字母都会遍历

复杂版:while循环可以遍历字典,麻烦

 

3、for循环嵌套

range功能介绍:

range(10)  #打印从0-9

range(1,9) #1...8,走1开始

range(1,9,1)

     步长为1

range(1,9,2)

     步长为2

 

#例1:

for i in range(30):

  print('>>>:')

打印30行    >>>:

 

for i in range(3):
for k in range(5):
print("*",end='')
print() #print()表示换行

*****

*****

*****

#例2:

九九乘法表

for i in range(1,10):
for j in range(1,i+1):
print('%s*%s=%s'%(i,j,i*j),end=' ')
print()


1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 Process finished with exit code 0

 

 

 

4、for + break =while + break

   for + else = while + else

   for + continue  结束本次进入下一次

例:

  for i in range(6)

    if i ==4

      continue

    print(i)

0 1 2 3 5

 

二 数据类型及其内置方法

1、数字类型int与float

#int:整型

age = 10 #本质age = int(10)

可以将由纯整数构成的字符串直接转换成整型,若包含其他任意非整数符号,则会报错

s = '12.3'
res = int(s)
print(res,type(res))

Traceback (most recent call last): File "D:/JetBrains/New Test/New 1/3.10.py", line 60, in <module> res = int(s) ValueError: invalid literal for int() with base 10: '12.3'

 

#float:浮点型

s = 3.3 #本质s = float(3.3)

2、类型转换

十进制转其他进制

二进制:bin(3) -> '0b11'

八进制:hex(17) ->'0x11'

十六进制:hex(17) -> '0x11'

其他进制转十进制:

二进制:int('0b11,2') ->3

八进制:int('0o11',8) ->9

十六进制:int('0x11',16) ->17

3、使用

int与float;没有需要掌握的内置方法

他们的使用就是数学运算+比较运算

三 字符串类型

1、定义:

在单引号\双引号\三引号内包含一串字符

2、类型转换

str可以把任意其他类型都转成字符串

res=str({'a':1})
print(res,type(res))
 
 
{'a': 1} <class 'str'>

3、使用:内置方法

3.1 优先掌握

3.1.1、按索引取值(正向取+反向取) :

msg='hello world'

a、正向取

print(msg[0])

print(msg[5])

b、反向取

print(msg[-1])

c、只能取

msg='hello python!'
msg[0] = 'H'
print(msg)

Traceback (most recent call last): File "D:/JetBrains/New Test/New 1/3.10.py", line 64, in <module> msg[0] = 'H' TypeError: 'str' object does not support item assignment

 

3.2、切片

a、顾头不顾尾:

取出索引0-8的字符

msg[0:9]

hello pyt

b、步长:    0:9:2 第三个参数2代表步长,会从0开始,每次间隔2,即0、2、4、6

msg[0:9:2]

 

hlopt

c、反向切片

msg[::-1]  #-1表示从右往左依次取值

msg='hello python!'
msg=msg[::-1]
print(msg)

!nohtyp olleh

 

d、长度len

获取字符串的长度,即字符的个数,但凡存在于引号内的都算作字符

len(msg)  #空格也算字符

13

e、成员运算in 和 not in

#int :判断hello 是否在msg里

‘hello’ in msg

True

#not in :判断tony是否不在msg里面

‘tony’ not in msg

True

f、strip移除字符串首尾指定的字符(默认移除空格)

#括号内不指定字符,默认移除首尾空格

msg = '  life is short! '

msg.strip()

 

life is short!

#括号内指定字符,移除首位指定的字符

msg1 = '**tony**'

msg1.strip('*')

 

tony

g、切分split

# 括号内不指定字符,默认以空格作为切分符号

msg2 = 'hello world'

msg2.split()

['hello','world']

#括号内指定分隔字符,则按照括号内指定的字符切割字符串

msg3 = ‘127.0.0.1’

msg3.split(‘.’)

 

['127','0','0','1']

h、循环

msg4 = '今天你好吗?'

for line in msg4: 依次取出字符串中每一个字符

print(line)

 

3.3 需要掌握的操作

a、strip,lstrip,rstrip

 

 

 

str1 = '**tony***'
a=str1.strip('*') # 移除左右两边的指定字符
b=str1.lstrip('*') # 只移除左边的指定字符
c=str1.rstrip('*') # 只移除右边的指定字符
print(a,b,c)

tony tony*** **tony

b、lower(),upper()

lower():英文字母全部小写

upper():英文字母全部大写

c、startswith,endswith

判断字符串是否已括号内指定的字库开头/结尾,结果为True/False

d、split、rsplit

# split会按照从左到右的顺序对字符串进行切分,可以指定切割次数
str5='C:/a/b/c/d.txt'
a=str5.split('/',1)

print(a)

# rsplit刚好与split相反,从右往左切割,可以指定切割次数
str5='a|b|c'
b=str5.rsplit('|',1)

print(b)

['C:', 'a/b/c/d.txt'] ['a|b', 'c']

 

e、join

’%‘ 针对字符串。

hello,‘%’。join('hello')->'h%e%l%l%o'

’|‘  针对列表,取出多个字符串|作为分隔符号拼接 

‘|’.join(['tony','18','read'])

f、replace

#新字符代替旧字符

语法:replace('旧字符',‘新字符’)

#指点修改个数,从左往右开始

 

g、isdigit

判断字符串是否是纯数字组成,返回结果为True 或 False

msg= ‘46’

msg.isdigit()

 

age=input('请输入你的年龄:').strip()
if age.isdigit():
age=int(age) # int("abbab")
if age > 18:

print('猜大了')
elif age < 18:
print('猜小了')
else:
print('才最了')
else:
print('必须输入数字,傻子')

 

3.4 了解操作

1、find,rfind,index,count

find:从字符串的第一个字母或数字开始索引,找到返回1,找不到返回-1

a、index:同find,但找到会报错

b、count:统计字符串在大字符串中出现的数次

msg='hello everyone'

a = msg.count('e',1,6) #索引e从1开始到5范围内出现的次数

 

2、center,ljust,rjust,zfill

xxx.center(总宽度,’要填充的字符‘) 字符串居中显示

xxx.ljust(总宽度,’要填充的字符‘)字符串左对齐显示

xxx.rjust()字符串右对齐

xxx.zfill(总宽),字符串右对齐显示,不够用0填充

 

3、captalize:首字母大写

swapcase:大小写反转

title:每个单词的首字母大写

 

 

 

 

 

 

for i in range(30):
for i in range(5):
print('*',end ='')
print()
posted @ 2020-03-10 21:06  NevMore  阅读(212)  评论(0编辑  收藏  举报