day04.03.python中的for循环

循环结构-for

import random
# 其他语言中的for循环:
#       for (int i = 0; i < 100 ; i ++ ){
#
#       }

# range(start, stop, step):产生一个整数范围的序列/一个指定范围的整数序列
#   start: 开始值
#   stop:结束值
#   step:步长
#   左闭右开[start, stop)
range(5)     # 只写一个参数时,默认是结束值,开始值默认为0
range(0, 5)   # 两种写法是一样的
print(list(range(5)))    # [0, 1, 2, 3, 4]
print(list(range(0, 5)))  # [0, 1, 2, 3, 4]
print(list(range(3, 6)))  # [3, 4, 5]
print(list(range(2, 10, 2)))  # [2, 4, 6, 8]
print(list(range(10, 2)))   # [] 不写步长的时候没有意义
# print(list(range(7, 2, -1)))   # [7, 6, 5, 4, 3]
# print(list(range(10, 2, -1)))   # 但是步长为负数的时候 得到倒序的列表  [10, 9, 8, 7, 6, 5, 4, 3]
# print(list(range(7, 2, -2)))   # [7, 5, 3]

print(list(range(1, 101)))   # 打印 1-100
print(sum(list(range(1, 101))))  # 5050  求和

# for循环
#   1.遍历 range
#   2.循环遍历列表(元组。字符串。字典。集合)

# 需求:使用for循环打印 1-10
for i in range(1, 11):       # in 之后必须是可迭代对象,不能是单个数字/单个字符串等等
    print('i', i)

# 需求 :使用for循环打印 1-10 之间的每一个奇数
for i2 in range(1, 11, 2):
    print('i2', i2)

# 需求 :使用for循环打印 10-1 之间的每一个数
for i3 in range(10, 0, -1):
    print('i3', i3)

# 遍历列表  今后使用会非常频繁
# 列表
ages = [10, 20, 30]
# 索引,下标
print(ages[0])  # 10
print(ages[1])  # 20
print(ages[2])  # 30
# print(ages[3])  # 报错  值超出范围
print(ages[-1])  # 倒数第一个数  30

# len()  取列表的长度,即列表的个数
print(len(ages))  # 3

# 遍历列表
nums = [10, 20, 30, 40]

# 得到元素
for n in nums:
    print(n)   # 得到的是列表中的各个元素

# 得到索引
# for i in range(4):   # [0,1,2,3]
#     print(i, nums[i])

for i in range(len(nums)):   # [0,1,2,3]   使用时用长度的写法更贴合实际
    print(i, nums[i])

print('-' * 100)

# 枚举  同时得到 索引、元素
for i, n in enumerate(nums):
    print(i, n)

print('-' * 100)

# 练习:for 循环遍历 1-10 ,打印每个数的平方
for i in range(1, 11):
    print(i ** 2)   # print(i * i)


# 练习:打印以下图形
'''
*****
*****
*****
*****
*****
'''
for i in range(5):
    print('*****')

# 练习:打印以下图形
'''
*
**
***
****
*****
'''
for i in range(1, 6):
    print('*' * i)

for i in range(5):
    print('*' * (i + 1))

''' 基础题  使用for 循环 '''
# 1.求1-100之间可以被7整除的数的个数
c = 0
for i in range(1, 101):
    if i % 7 == 0:
        c += 1
print(c)

# 参考答案一样

# 2.计算从1到100以内所有奇数的和。
s = 0
for i in range(1, 101):
    if i % 2 != 0:
        s += i
print(s)

# 参考答案
# s = 0
# for i in range(1, 101, 2):
#         s += i
# print(s)

# 3.计算从1到100以内所有能被3或者17整除的数的和。
s = 0
for i in range(1, 101):
    if i % 3 == 0 or i % 17 == 0:
        s += i
print(s)

# 参考答案一样

# 4.计算1到100以内能被7或者3整除但不能同时被这两者整除的数的个数。
c = 0
for i in range(1, 101):
    if (i % 3 == 0 or i % 7 == 0) and i % 21 != 0:
        c += 1
print(c)

# 参考答案一样

# 5.计算1到500以内能被7整除但不是偶数的数的个数。
c = 0
for i in range(1, 501):
    if i % 7 == 0 and i % 2 != 0:
        c += 1
print(c)

# 参考答案一样
# 参考答案2
c = 0
for i in range(1, 501, 2):
    if i % 7 == 0:
        c += 1
print(c)

# 6.计算8的阶乘,要求用for循环
#   8的阶乘: 1*2*3*4*5*6*7*8
s = 1
for i in range(1, 9):
    s *= i
print(s)

# 参考答案一样

# 7.有一个寺庙,寺庙中有一个老和尚和一个小和尚,老和尚让小和尚去下山挑水,一次只能挑5L水
#   寺庙中的水缸是50L的,问小和尚要挑几次才可以装满水缸,要求用for循环计算
c = 0
for i in range(0, 50, 5):
    c += 1
print(c)

# 参考答案一样


''' 进阶题  for 循环 '''
# 1.从键盘输入一个数n,判断是不是一个质数(质数是只能被1和它自身整除的数)
n = int(input('请输入n:'))
c = 0
for i in range(2, n):
    if n % i == 0:
        c += 1
if c > 0:
    print(n, '不是质数')
else:
    print(n, '是质数')


# 2.求1000以内的水仙花数(100-999):水仙花数:一个三位数各个位上的立方之和,等于本身。
for i in range(100, 1000):
    if (i // 100) ** 3 + (i // 10 % 10) ** 3 + (i % 10) ** 3 == i:
        print(i)

# 3.求2~100之内的所有素数。【素数:只能被1或本身整除的数】
for i in range(2, 101):
    c = 0
    for j in range(2, i):
        if i % j == 0:
            c += 1
    if c == 0:
        print(i)
# 4.优化猜数字游戏
#   计算机出一个1~100之间的随机数由人来猜 random.randint(1, 100)
#   计算机根据人猜的(输入)数字分别给出提示: 大一点 / 小一点 / 猜对了,
#   这个过程可以循环进行,当进行5次以上还猜不对的话,则打印:智商余额不足,并退出
#   如果猜对了,则也退出
n = random.randint(1, 100)
for i in range(5):
    m = int(input('请输入数字m:'))
    if n > m:
        print('大一点')
    elif n < m:
        print('小一点')
    else:
        print('猜对了')
        break
print('智商余额不足')

'''
注意:
    for循环:一般用于已知循环次数
    while循环:一般用于未知循环次数,或 死循环
        如果要写死循环不要用for循环,for 的右边要写东西,要么写range() 要么列表 要么元素等,这些都是有范围的
    假设一张纸的厚度是 0.01mm(毫米),对折多少次达到珠穆朗玛峰的高度 8848米,即求循环次数  
        这个题目不是等差的,是等比,不知道步长,未知循环次数,只能用while
'''
# 参考答案
# 未知循环次数
c = 0
i = 0.01
while i < 8848 * 1000:
    c += 1
    i *= 2
    # print('i', i)  # 呈指数级增长
print(c)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
If Not IsObject(application) Then Set SapGuiAuto = GetObject("SAPGUI") Set application = SapGuiAuto.GetScriptingEngine End If If Not IsObject(connection) Then Set connection = application.Children(0) End If If Not IsObject(session) Then Set session = connection.Children(0) End If If IsObject(WScript) Then WScript.ConnectObject session, "on" WScript.ConnectObject application, "on" End If session.findById("wnd[0]").maximize session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4431/subSUBSCREEN_TC:SAPMV45A:4909/tblSAPMV45ATCTRL_U_ERF_WERTKONTRAKT").getAbsoluteRow(0).selected = true'选一个item session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4431/subSUBSCREEN_TC:SAPMV45A:4909/tblSAPMV45ATCTRL_U_ERF_WERTKONTRAKT/txtVBAP-POSNR[0,0]").setFocus session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4431/subSUBSCREEN_TC:SAPMV45A:4909/tblSAPMV45ATCTRL_U_ERF_WERTKONTRAKT/txtVBAP-POSNR[0,0]").caretPosition = 5 session.findById("wnd[0]/usr/tabsTAXI_TABSTRIP_OVERVIEW/tabpT\02/ssubSUBSCREEN_BODY:SAPMV45A:4431/subSUBSCREEN_TC:SAPMV45A:4909/subSUBSCREEN_BUTTONS:SAPMV45A:4052/btnBT_PKSE").press session.findById("wnd[0]/tbar[1]/btn[43]").press'进入Pricing agreement 编辑界面 session.findById("wnd[1]/usr/ctxtRV13A-KSCHL").text = "ZS61" '输入ZS61 condition type session.findById("wnd[1]/usr/ctxtRV13A-KSCHL").caretPosition = 4 session.findById("wnd[1]/tbar[0]/btn[0]").press session.findById("wnd[2]/usr/sub:SAPLV14A:0100/radRV130-SELKZ[4,0]").select’选择Key combination session.findById("wnd[2]/usr/sub:SAPLV14A:0100/radRV130-SELKZ[4,0]").setFocus’选择SD Document/Item/Product Hierachy level 1 session.findById("wnd[2]").sendVKey 2 session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_FAST_ENTRY/ctxtKOMG-PRODH1[0,0]").text = "SP"'放入SP备件 session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_FAST_ENTRY/txtKONP-KBETR[2,0]").text = "100"'放入100%折扣 session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_FAST_ENTRY/ctxtRV13A-DATAB[8,0]").text = "01.01.2023"'放入开始生效时间 session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_FAST_ENTRY/ctxtRV13A-DATBI[9,0]").text = "04.03.2024"'放入结束生效时间 session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_FAST_ENTRY/ctxtRV13A-DATBI[9,0]").setFocus session.findById("wnd[0]/usr/tblSAPMV13ATCTRL_FAST_ENTRY/ctxtRV13A-DATBI[9,0]").caretPosition = 10 session.findById("wnd[0]/tbar[0]/btn[11]").press
06-10

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值