python for循环内输出和外输出方式

通过for循环求和,结果发现输出完全不一样,一个循环是输出每一步的结果,另一个循环是输出最终一次的结果,今天终于弄懂了。

如下所示:

补充:python中for循环输出(index,value)的两种方法

index索引

value索引值

方法一、利用enumerate()

list1=['a','s','d','g']
for index,value in enumerate(list1):
 print('索引:%d,索引值:%s'%(index,value))

输出结果:

索引:0,索引值:a

索引:1,索引值:s

索引:2,索引值:d

索引:3,索引值:g

方法二、利用range(len())

list1=['q','w','e','r']
for i in range(len(list1)):
 print('索引:%d,索引值:%s'%(i,list1[i]))

输出结果:

索引:0,索引值:q

索引:1,索引值:w

索引:2,索引值:e

索引:3,索引值:r

补充:Python 最基本的语法(输入输出,for循环)

Python-入门中的入门——打印日历

历程:

大一上半年C++书中的案例,连注释带上代码一共二百行,当时自己C++写了足足200行才解决。后来19年元旦自学python拿起这道题重写,写了60行。为了回忆python 语法重新写了一遍,结果写完发现才三十行的样子(都怪重装系统忘记备份python文件,搞得现在都不知道当时咋写的那么长)

题干大意

已知2000年1月1日为星期六,按照日期计算并打印日历(如图)

代码

def get_year_days(n):
 if n%4==0 and n%100!=0 or n%400==0 : return 366
 else : return 365
def get_month_days(n,m):
 if m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12:return 31
 if m == 4 or m == 6 or m == 9 or m == 11 : return 30
 if m == 2:
 if n==365: return 28
 else:return 29
target_n = int(input("Please input year"))
target_y = int(input("Please input month"))
sum = 0
for x in range(2000,target_n):
 print(x,get_year_days(x))
 sum = sum + get_year_days(x)
for x in range(1,target_y):
 print(x,get_month_days(get_year_days(target_n),x))
 sum = sum + get_month_days(get_year_days(target_n),x)
# print(sum)
dx = (sum+6)%7
if dx == 0: dx = 7
print("一 二 三 四 五 六 日")
for x in range(1,dx+1):print(" ",end = " ")
for x in range(1,get_month_days(get_year_days(target_y),target_y)):
 if x<=9 and x>=1 : print(x , end = " ")
 else :print(x,end = " ")
 if (x+dx)%7==0:print()

语法易错点整理

输入输出格式

(四个月没写python 是真的忘得一干二净,查怎么输入输出花了一会时间)

1、理解input ,它可以接受很多形式的输入,如果在储存时就想确定他的数据类型,就要用个括号兜起来然后前面写上数据类型。

a = input(); #此时输入的以不确定的形式储存在了a中
a = int(intput()); #此时输入的东西自动以int数据类型储存在了a中
a = int(input("一句话")) #此时在输出之前输出了"一句话"

2、输出格式

是print,不是println 也不是printf(受最近写Java和打acm的习惯的影响)以为println可以换行,才发现print本身就可以换行。此外还有不换行的办法,就是通过print的()中加上一个 end = ……,来改变输出后的处理方式。

print(10) #输出10
print(a) #输出a
print(a , end = " ") #以空格来结束此次的输出
print(a, end = "任意东西") #以"任意东西"来做为结束此次的输出

for循环的range

range的遍历是前开后不开(用区间来表示)

for x in range(1,5) : #此时会遍历1 2 3 4,不会遍历5

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • python3中for循环踩过的坑记录

    前言 最近在用python练习写点爬虫,想着把双色球的历史记录爬下来存入mysql中,爬取数据没有遇到什么问题,在处理数据存入数据库的时候遇到问题了,现把问题整理出来方便自己日后查询也能帮助有缘人士: 一.从双色球历史网站爬取数据存成html文件: import urllib.request url = 'https://datachart.500.com/ssq/history/newinc/history.php?start=1&end=20109' request = urllib.req

  • python map比for循环快在哪

    实验结论 如果需要在循环结束后获得结果,推荐列表解析: 如果不需要结果,直接使用for循环, 列表解析可以备选; 除了追求代码优雅和特定规定情境,不建议使用map 如果不需要返回结果 这里有三个process, 每个任务将通过增加循环提高时间复杂度 def process1(val, type=None): chr(val % 123) def process2(val, type): if type == "list": [process1(_) for _ in range(val

  • Python matplotlib读取excel数据并用for循环画多个子图subplot操作

    读取excel数据需要用到xlrd模块,在命令行运行下面命令进行安装 pip install xlrd 表格内容大致如下,有若干sheet,每个sheet记录了同一所学校的所有学生成绩,分为语文.数学.英语.综合.总分 考号 姓名 班级 学校 语文 数学 英语 综合 总分 ... ... ... ... 136 136 100 57 429 ... ... ... ... 128 106 70 54 358 ... ... ... ... 110.5 62 92 44 308.5 画多张子图需要

  • Python迭代器协议及for循环工作机制详解

    一.递归与迭代 二.什么是迭代器协议 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stopiteration异常,已终止迭代(只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3.协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具(如for循环,sum,min,max函数等)使用迭代器协议访问对象. 三.python中强大的for循环机制 for循环的本质:循

  • 解决python 在for循环并且pop数组的时候会跳过某些元素的问题

    今天在学python的时候遇到一个问题,循环一个数组 指定一个数,如果数组内有相同的元素就删除. 1. 前提是不能新增内存,就在该数组内处理 nums = [0,1,2,2,3,0,4,2] val = 2 for i in nums: if(i == val): idx = nums.index(i) nums.pop(idx) print(nums) 一开始写成这样时候输出 [0, 1, 2, 3, 0, 4] //中间的2居然没有删除 然后我修改了一下 把每一次循环都打出来看看 0loop

  • Python-for循环的内部机制

    Python中,使用for循环可以迭代容器对象中的元素,这里容器对象包括是列表(list).元组(tuple).字典(dict).集合(set)等.但是,为什么这些对象可以使用for循环进行操作呢? 首先,定义一个简单的类尝试一下: class TestRange: def __init__(self, num): self.num = num for i in TestRange(10): print(i) # 输出 Traceback (most recent call last): Fil

  • Python通过两个dataframe用for循环求笛卡尔积

    合并两个没有共同列的dataframe,相当于按行号求笛卡尔积. 最终效果如下 以下代码是参考别人的代码修改的: def cartesian_df(A,B): new_df = pd.DataFrame(columns=list(A).extend(list(B))) for _,A_row in A.iterrows(): for _,B_row in B.iterrows(): row = A_row.append(B_row) new_df = new_df.append(row,igno

  • Python 如何用一行代码实现for循环初始化数组

    我就废话不多说了,大家还是直接看代码吧~ # 用一行代码实现for循环初始化数组 o = 10 b = [ o + u for u in range( 10 ) ] print( b ) # 结果是 [10, 11, 12, 13, 14, 15, 16, 17, 18, 19] x = 2 y = 3 c = [ i * y + x for i in range( 10 ) ] print( c ) # 结果是 [2, 5, 8, 11, 14, 17, 20, 23, 26, 29] 补充:

  • python使用prettytable内置库美化输出表格

    目录 前言: 安装 案例 从csv文件添加数据,并打印出表格 从HTML导入数据 前言: 大多数时候,需要输出的信息能够比较整齐的输出来,在使用mysql的时候,我们使用命令符之后,会输出特别好看的表格,python的prettytable库就是这么一个工具,可以帮助我们打印出好看的表格,并且对中文支持特别友好 安装 prettytable是pyhton内置库,通过命令直接可以安装 pip install prettytable 案例 from prettytable import Pretty

  • python for循环内输出和外输出方式

    通过for循环求和,结果发现输出完全不一样,一个循环是输出每一步的结果,另一个循环是输出最终一次的结果,今天终于弄懂了. 如下所示: 补充:python中for循环输出(index,value)的两种方法 index索引 value索引值 方法一.利用enumerate() list1=['a','s','d','g'] for index,value in enumerate(list1): print('索引:%d,索引值:%s'%(index,value)) 输出结果: 索引:0,索引值:

  • python中print的不换行即时输出的快速解决方法

    关于Python2.x和3.x带来的print不换行的问题:昨天有发过推文,利用end = 定义,解决了横向的小问题,但是由于屏幕显示的问题,若字符串长度过大,则会引起不便.两个或多个print做分割的情况下,如何保持依然横向输出,一般的是在print尾部加上逗号(,)但是在3.x下,则不行,需要使用end = "(something)",some signs like , . ; 'also you can put a word or str in"". Exam

  • go和python调用其它程序并得到程序输出

    在c语言中可以用system函数调用系统命令并得到输出,通过输出重定向也可以将程序执行的输出保存到文件以供使用,但用起来不是很方便.我这里介绍下用python和go语言的实现方式,可以将其它程序的输出直接保存成变量供程序使用. 下面的示例用的是ls命名,需要安装MinGW,并将"C:\MinGW\msys\1.0\bin"加入环境变量. 一.用python调用其它程序,并得到输出 示例代码: 复制代码 代码如下: import osvar = os.popen('ls -l').rea

  • Python实现遍历windows所有窗口并输出窗口标题的方法

    本文实例讲述了Python实现遍历windows所有窗口并输出窗口标题的方法.分享给大家供大家参考.具体如下: 这段代码可以让Python遍历当前Windows下所有运行程序的窗口,并获得运行窗口的标题输出 #! /usr/bin/env python # -*- coding: utf-8 -*- from win32gui import * titles = set() def foo(hwnd,mouse): #去掉下面这句就所有都输出了,但是我不需要那么多 if IsWindow(hwn

  • python中实现将多个print输出合成一个数组

    比如有下面一段代码: for i in range(10): print ("%s" % (f_list[i].name)) 该代码段的执行,会生成如下的10行"name"属性的字符串 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 如果我们将上述代码段修改如下: for i in range(10): print ("\"%s\"," % (f_list[i].name)), 代码的执行结果就变成下面的样子:

  • Python实现按照指定要求逆序输出一个数字的方法

    本文实例讲述了Python实现按照指定要求逆序输出一个数字的方法.分享给大家供大家参考,具体如下: 问题是:输入一个数字,按照指定要求逆序输出该数字,很简单,下面是实现: #!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:逆序输出一个数字 如果数字是正数直接输出如:177--->771 如果数字是负数保留负号如:-945--->-549 如果数字以0结果逆序后需要去除0如:100--->1 如果数字很大会造成溢出返

  • Python获取命令实时输出-原样彩色输出并返回输出结果的示例

    经试验显示效果不错. #!/usr/bin/python3 # -*- coding: utf-8 -*- import os import subprocess # 与在命令窗口执行显示效果相同,如有彩色输出可保留,但不能返回结果 def run(command): subprocess.call(command, shell=True) # 实时输出但不可显示彩色,可以返回结果 def sh(command, print_msg=True): p = subprocess.Popen(com

  • python日期时间转为字符串或者格式化输出的实例

    如下所示: 年月日时分秒 >>> print datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") 2017-07-15 15:01:35 年月日 小时分钟 >>> print datetime.datetime.now().strftime("%Y-%m-%d %H:%M") 2017-07-15 15:01 年月日 >>> print datetime.d

  • python代码 输入数字使其反向输出的方法

    如下所示: # 输入数字使其反向输出 num = int(input("请输入一个数:")) i = 0 num1 = num while True: if num1 // 10 == 0: break i += 1 num1 = num1 // 10 sum = 0 while i >= 0: sum = sum + (num % 10) * (10 ** i) num = num // 10 i = i - 1 print(sum) 以上这篇python代码 输入数字使其反向

随机推荐