python每次循环取一个数字_python基础06——for循环&字符串类型&数字类型

For 循环语句

1、什么是for循环

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

2、为何要有for循环

理论上for循环能做的事情,while循环都可以做

之所以要有for循环,是因为for循环在循环取值(遍历取值)比while循环更简洁

3、如何用for循环

语法:

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

代码1

代码2

代码3

...

'''

for基本使用之循环取值

案例1:列表循环取值

简单版

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

for x in l:                                                            # x='lxx_dsb'

print(x)

复杂版:

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

i=0

while i < 3:

print(l[i])

i+=1

案例2:字典循环取值

简单版

dic={'k1':111,'k2':2222,'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循环可以遍历字典,太麻烦了

二:总结for循环与while循环的异同

1、相同之处:都是循环,for循环可以干的事,while循环也可以干

2、不同之处:

# while循环称之为条件循环,循环次数取决于条件何时变为假

# for循环称之为"取值循环",循环次数取决in后包含的值的个数

for x in [1,2,3]:

print('===>')

print('8888')

三:for循环控制循环次数:range()

in后直接放一个数据类型来控制循环次数有局限性:

当循环次数过多时,数据类型包含值的格式需要伴随着增加

for x in 'a c':

inp_name=input('please input your name: ')

inp_pwd=input('please input your password: ')

range功能介绍

'''

>>> range(10)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>>

>>> range(1,9) # 1...8

[1, 2, 3, 4, 5, 6, 7, 8]

>>>

>>> range(1,9,1) # 1 2 3 4 5 6 7 8

[1, 2, 3, 4, 5, 6, 7, 8]

>>> range(1,9,2) # 1 3 5 7

[1, 3, 5, 7]

'''

for i in range(30):

print('===>')

for+break: 同while循环一样

for+else:同while循环一样

username='egon'

password='123'

for i in range(3):

inp_name = input('请输入您的账号:')

inp_pwd = input('请输入您的密码:')

if inp_name == username and inp_pwd == password:

print('登录成功')

break

else:

print('输错账号密码次数过多')

四:range补充知识(了解)

1、for搭配range,可以按照索引取值,但是麻烦,所以不推荐

l=['aaa','bbb','ccc']                                                    # len(l)

for i in range(len(l)):

print(i,l[i])

for x in l:

print(l)

2、range()在python3里得到的是一只"会下蛋的老母鸡"

五:for+continue

for i in range(6):                                                                       # 0 1 2 3 4 5

if i == 4:

continue

print(i)

六:for循环嵌套:外层循环循环一次,内层循环需要完整的循环完毕

for i in range(3):

print('外层循环-->', i)

for j in range(5):

print('内层-->', j)

# 补充:终止for循环只有break一种方案

print('hello %s' % 'egon')

1、print之逗号的使用

print('hello','world','egon')

2、换行符

print('hello\n')

print('world')

3、print值end参数的使用

print('hello\n',end='')

print('word')

print('hello',end='*')

print('world',end='*')

数字类型

一:int类型

1、作用:

2、定义:

age = 10                                  # age=int(10)

# 名字(参数)

print('hello','world')

x=int(10)

name=input('xxx')

res=print('xxx')                                  # 没有产品

print(res)

类型转换

1 纯数字的字符串转成int

res=int('100111')

print(res,type(res))

2(了解)

2.1 十进制转成其他进制

10进制 -> 二进制

11 - > 1011

1011-> 8+2+1

print(bin(11))                                           # 0b1011

10进制 -> 八进制

print(oct(11))                                           # 0o13

10进制 -> 十六进制

print(hex(11))                                         # 0xb

print(hex(123))                                      # 0xb

2.2 其他制转成其十进制

二进制->10进制

print(int('0b1011',2))                           # 11

二进制->8进制

print(int('0o13',8))                              # 11

二进制->16进制

print(int('0xb',16))                              # 11

二:float类型

1、作用

2、定义

salary=3.1                                                         # salary=float(3.1)

3、类型转换

res=float("3.1")

print(res,type(res))

4、使用

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

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

字符串类型

1、作用

把其他类型数据,比如int类型进行转换

2、定义

msg='hello' # msg=str('msg')

print(type(msg))

3、类型转换

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

res=str({'a':1})

print(res,type(res))

4、使用:内置方法

(优先掌握)

1.1、按索引取值(正向取+反向取) ,只能取

msg='hello world'

# 正向取

print(msg[0])

print(msg[5])

# 反向取

print(msg[-1])

# 只能取

msg[0]='H'         # 此项会报错TypeError,   对于str来说,只能按照索引取值,不能修改

1.2、切片:索引的拓展应用,从一个大字符串中拷贝出一个子字符串

msg='hello world'

# 顾头不顾尾

res=msg[0:5]                           #hello,取到第4位字符

print(res)

print(msg)

# 步长

res=msg[0:5:2]                         # 0 2 4, 从第0位取到第4位,步长为2

print(res)                                  # hlo

# 反向步长(了解)

res=msg[5:0:-1]                      # 注意:反向步长,取值范围也需要倒置,步长为负数

print(res)                                 #" olle"

msg='hello world'

res=msg[:]                             # 默认取整个字符串,相当于 res=msg[0:11]

print(res)

res=msg[::-1]                        # 把字符串倒置

print(res)

1.3、长度len

msg='hello world'

print(len(msg))

1.4、成员运算in和not in

判断一个子字符串是否存在于一个大字符串中,使用in

print("alex" in "alex is sb")

print("alex" not in "alex is sb")

print(not "alex" in "alex is sb")                            # 不会报错,但是不推荐使用

1.5、移除字符串左右两侧的符号strip(实质是产生了新值)

作用: 默认去掉的空格

msg=' egon '

res=msg.strip()

print(msg)                    # 不会改变原值

print(res)                     # 是产生了新值

# 默认去掉的空格

msg='****egon****'

print(msg.strip('*'))

# 了解:strip只去两边,不去中间

msg='****e*****gon****'

print(msg.strip('*'))                   # 打印出e*****gon,即两边读取,直到读取到非空格的值停止取值

msg='**/*=-**egon**-=()**'

print(msg.strip('*/-=()'))

# 应用

inp_user=input('your name>>: ').strip()                                 # inp_user=" egon"

inp_pwd=input('your password>>: ').strip()

if inp_user == 'egon' and inp_pwd == '123':

print('登录成功')

else:

print('账号密码错误')

1.6、切分split:把一个字符串按照某种分隔符进行切分,得到一个列表

# 默认分隔符是空格

info='egon 18 male'

res=info.split()

print(res)

# 指定分隔符'.'

info='egon:18:male'

res=info.split(':')

print(res)

# 指定分隔次数(了解)

info='egon:18:male'

res=info.split(':',1)

print(res)

1.7、循环

info='egon:18:male'

for x in info:

print(x)

2 需要掌握

2.1、strip,lstrip,rstrip

msg='***egon****'

print(msg.strip('*'))                #去掉两边的*

print(msg.lstrip('*'))               #去掉左边的*

print(msg.rstrip('*'))              #去掉右边的*

2.2、lower,upper

msg='AbbbCCCC'

print(msg.lower())               #字符串全变小写

print(msg.upper())              #字符串全变大写

2.3、startswith,endswith

print("alex is sb".startswith("alex"))

print("alex is sb".endswith('sb'))

2.4、format

用法:str.format     (兼容性好,在python2.6版本时候推出,所以兼容python2和python3,推荐使用)

1) 按照位置传值

res='我的名字是 {} 我的年龄是 {}'.format('egon',18)

print(res)

res='我的名字是 {0}{0}{0} 我的年龄是 {1}{1}'.format('egon',18)

print(res)

2) 打破位置的限制,按照key=value传值

res="我的名字是 {name} 我的年龄是 {age}".format(age=18,name='egon')

print(res)

3)四舍五入

print('{salary:.3f}'.format(salary=3.1415926))                      #3.142    精确到小数点后三位

2.5、split,rsplit:将字符串切成列表

info="egon:18:male"

print(info.split(':',1))                                                  # ["egon","18:male"], split会自动按照从左到右的顺序对字符串 进行切分, 可以指定切分次数

print(info.rsplit(':',1))                                                 # ["egon:18","male"],rsplit就是从右向左切分

2.6、join: 把列表拼接成字符串

l=['egon', '18', 'male']

res=l[0]+":"+l[1]+":"+l[2]

res=":".join(l)                                                                    # 按照某个分隔符号,把元素全为字符串的列表拼接成一个大字符串

print(res)

l=[1,"2",'aaa']

":".join(l)                                        #从列表l中取出的字符串按照分隔符':'进行拼接

2.7、replace

#语法:replace('旧内容', '新内容',修改个数)

msg="you can you up no can no bb"

print(msg.replace("you","YOU",))

print(msg.replace("you","YOU",1))

2.8、isdigit

判断字符串是否由纯数字组成

print('123'.isdigit())

print('12.3'.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了解

3.1、find,rfind,index,rindex,count

find:从指定范围内查找子字符串的起始索引,找得到则返回数字1,找不到则返回-1

index:同find,但在找不到时会报错

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

msg='hello egon hahaha'

# 找到返回起始索引

print(msg.find('e')) # 返回要查找的字符串在大字符串中的起始索引

print(msg.find('egon'))

print(msg.index('e'))

print(msg.index('egon'))

# 找不到

print(msg.find('xxx'))                                   # 返回-1,代表找不到

print(msg.index('xxx'))                                 # 抛出异常

msg='hello egon hahaha egon、 egon'

print(msg.count('egon'))

3.2、center,ljust,rjust,zfill

print('egon'.center(50,'*'))                  #字符串居中显示,总宽度为50,不足的地方用*补足

print('egon'.ljust(50,'*'))                     #字符串左对齐显示,总宽度为50,不足的地方用*补足

print('egon'.rjust(50,'*'))                    #字符串右对齐显示,总宽度为50,不足的地方用*补足

print('egon'.zfill(10))                         #总宽度10,字符串右对齐显示,不够用0填充,固定填充格式

3.3、expandtabs

作用:把字符串中的 tab符号('\t')转为空格,tab符号('\t')默认的空格数是 8

msg='hello\tworld'                                      # \t表示制表符(Tab键)

print(msg.expandtabs(2))                          # 设置制表符代表的空格数为2

3.4、captalize,swapcase,title

print("hello world egon".capitalize())

print("Hello WorLd EGon".swapcase())

print("hello world egon".title())

3.5、is数字系列

print('abc'.islower())

print('ABC'.isupper())

print('Hello World'.istitle())

print('123123aadsf'.isalnum())                # 字符串由字母或数字组成结果为True

print('ad'.isalpha())                                  # 字符串由由字母组成结果为True

print(' '.isspace())                                    # 字符串由空格组成结果为True

print('print'.isidentifier())

print('age_of_egon'.isidentifier())

print('1age_of_egon'.isidentifier())

num1=b'4'           #bytes

num2=u'4'           #unicode,python3中无需加u就是unicode

num3='四'           #中文数字

num4='Ⅳ'           #罗马数字

# isdigit只能识别:num1、num2, 即bytes&unicode类型

print(num1.isdigit())    # True

print(num2.isdigit())    # True

print(num3.isdigit())    # False

print(num4.isdigit())    # False

# isnumberic可以识别:num2、num3、num4, 即bytes&unicode&中文类型

print(num2.isnumeric())    # True

print(num3.isnumeric())    # True

print(num4.isnumeric())    # True

# isdecimal只能识别:num2,即Unicode,所以基本不用

print(num2.isdecimal())    # True

print(num3.isdecimal())    # False

print(num4.isdecimal())    # False

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的计算思维训练中,循环与列表是非常重要的一部分。循环是一种重复执行特定代码块的方式,而列表则是一种存储多个元素的数据结构。 循环可以帮助我们简化代码、减少重复性工作。在Python中,有两种常见的循环结构:for循环和while循环。for循环适用于已知循环次数的情况,而while循环适用于未知循环次数的情况。 列表是一种有序序列,可以用来存储多个元素。在Python中,列表用方括号([])表示,元素之间使用逗号(,)分隔。列表可以包含不同类型的元素,如整数、浮点数、字符串等。 循环与列表的结合应用让问题的解决更加高效。我们可以通过循环遍历列表中的每个元素,执行相同的操作或针对每个元素执行不同的操作。例如,我们可以使用循环来求列表中所有元素的和或平均值。同时,我们还可以在循环中使用条件语句对列表中的元素进行筛选和处理。 除了遍历列表,我们还可以使用循环来生成列表。通过循环的迭代,我们可以根据特定的规律生成一系列元素,并将它们存储到列表中。这在处理大量数据或自动生成一系列数值时非常有用。 总的来说,循环与列表是Python计算思维中非常重要的一部分。它们可以帮助我们解决各种问题,简化代码并提高效率。掌握循环与列表的使用方法,将会为我们的编程开发带来更多的便利和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值