脚本开头,python预编译,控制台输入输出,for,while循环,分支判断,break,continue
3. name = input("name:")与2.x中raw_input一回事, 注意接收的变量全部默认为字符串类型。
从控制台接收用户输入,而密文输入import getpass password = getpass.getpass("password:") 这个不能在pycharm中测试成功,而在命令行模式可以成功!
4.格式化输出。
#第一种方式: ,,, name = {_name} age = {_age} ,,, .format(_name=name,_age=age) #第二种方式: ,,, name={0} age={1} ,,, .format(name,age) #第三种方式: "name=%s age=%s"%(name,age)
有必要说一下迭代器/生成器
列表生成式: [ i for i in range(10) ] 在内存中生成列表[0,1,...9],可以根据下标访问其中任意一个元素。如果有几百万个显然不能这样用
生成器: ( i for i in range(10) ) 在内存中是一个地址,不能根据下标访问某元素,只能用gen.next()方法从第一个开始访问
yield关键字把的作用是返回并且记录该中断点。
def gen(i): #有yield关键字,i是长度,从1 开始
n = 1
while n <= i:
yield n
n += 1
return "done-----" def fuc(i): #没有yield关键字
i += 1
return i print(gen(10)) # <generator object gen at 0x0000000001DF8888>
print(gen) # <function gen at 0x00000000005B3E18>
print(fuc(10)) #
可以发现,有yield的成了生成器对象 genner = gen(10) ↓ 生成器对象有个__next__()方法,调用一次激活一次生成器(第一次激活从头开始,第二次...从yield开始)。
# 第一种调用生成器的方式: whil true + next
while True: # 循环到第10个以后就不能next了,因为跳出了while循环yield不了,就抛异常StopIteration
try:
print(genner.__next__())
except StopIteration as e:
print(e.value)
break # 第二种调用生成器的方式,用for循环,这里看出gen(10)是一个迭代器了
for i in gen(10):
print(i)
#循环10次,i从0开始,自增1,循环完10次后执行else中的内容 for i in range(10): ... else: ...
# 可以设置步长 0 2 4 6 8
for i in range(0,10,2):
...
else:
...
# 遍历列表:
1. for i in list1: print ( list1.index(i) , i )
2. for i,j in enumerate(list1): print ( i , j)
# 遍历字典:
1.for key in info: print( key , info[k]) #推荐使用 2.for k,v in info.items(): print(k,v) #不推荐 效率比第一种慢
三种倒序遍历方法:
# 第一种方法
for x in reversed(array):
print x # 第二种方法
for x in range(len(array)-1,-1,-1):
print array[x] # 第三种方法
for x in array[::-1]:
print x
倒序遍历的用处:
['A','B','C','D','E','F','G','H'] 删除index为2,4,6 ==> ['A','B','D','F','H']
不能pop(2) pop(4) pop(6) 为什么?
del_list = [4,6,2] # 被删的index,无序的
for index in range(len(source)-1,-1,-1):
for del_index in del_list:
if index == del_index:
source.pop(index)
# 这样倒序遍历每次都删除了del_list里面index最大的,即source中最靠近尾部的元素
可以看出,实际上是这样的删除步骤, pop(6) pop(4) pop(2)可以直接这样:
del_list.sort(reverse=True) # del_list降序排列
for i in del_list:
source.pop(i)
7.判断语句
if a==b and b==c: ... elif d==f: ... else ...
8.break和continue
break用于跳出本层循环,continue用于结束本次循环,开始下一次循环
脚本开头,python预编译,控制台输入输出,for,while循环,分支判断,break,continue的更多相关文章
- Python预编译语句防止SQL注入
这个月太忙,最近不太太平,我的愿望是世界和平! ================================== 今天也在找python的预编译,早上写的sql是拼接来构成的.于是找了2篇文章,还 ...
- Python基础1:if条件判断 break/continue语句
计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. Python中,if语句被用来进行判断,它的语法结构是: 1 if 判断条件: 2 执行语句…… 3 var = input(" ...
- python预编译函数compile,exec,eval
funcname = "func" func = "def %s():\n" % funcname funccontent = 'print "hel ...
- Javascript - 预编译与函数词法作用域
预编译与函数词法作用域(Precompiled & Scoped) 预编译 Javascript脚本的宿主在执行代码之前对脚本做了预编译处理,比如浏览器对Js进行了预编译,编译器会扫描所有的声 ...
- C预编译, 预处理, C/C++头文件, 编译控制,
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的 ...
- jdbc预编译
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp20 JAVA_JDBC预编译 相关知识点 什么是预编译语句? 预编译语句P ...
- python break/continue - python基础入门(10)
在昨天的文章:python while循环 文章结尾,我们留下了一个bug,当条件成立时,程序陷入了死循环,如何解决呢? 为了规避这个问题,今天介绍两个关键词:break和continue. ...
- python break continue跳过和跳出循环
break 语句可以跳出 for 和 while 的循环体.continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环.用break continue 写一个乘法表下 ...
- Python使用re模块正则式的预编译及pickle方案
项目上线要求当中有言论和昵称的过滤需求, 客户端使用的是python脚本, python脚本中直接利用re模块来进行正则匹配, 一开始的做法是开启游戏后, 每帧编译2条正则式, 无奈运营需求里面100 ...
随机推荐
- 魏汝盼医学博士 - Judy Zhu Wei, M.D., F.A.C.O.G.
魏汝盼医学博士 - Judy Zhu Wei, M.D., F.A.C.O.G. 医院(诊所)名称:CAPRI妇产科诊所 妇产科,华人医生,微创妇科手术专科医生,女医生,fountai ...
- 微信公众平台appid和appsecret在哪
1.appid和appsecret是微信公众平台服务号才有的,如果自己家的公众平台不是服务号,需要升级为服务号. 2.登录服务号,登录“服务”条目,“服务中心”如图. 3.点击“自定义菜单”-“开发模 ...
- bzoj 1647: [Usaco2007 Open]Fliptile 翻格子游戏【dfs】
这个可以用异或高斯消元,但是我不会呀我用的暴搜 2的m次方枚举第一行的翻转情况,然后后面的就定了,因为对于一个j位置,如果i-1的j位置需要翻,那么一定要翻i的j,因为这是i-1的j最后翻的机会 按字 ...
- (斯特林公式)51NOD 1058 N的阶乘的长度
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Out ...
- 微信小程序setData的使用,通过[...]进行动态key赋值
首先先介绍一下微信小程序Page.prototype.setData(Object data, Function callback)的讲解: setData函数用于将数据从逻辑层发送到视图层(异步), ...
- 【原创】Maven安装和配置
ι 版权声明:本文为博主原创文章,未经博主允许不得转载. 前提 利用maven进行java项目或J2EE项目开发,要求电脑已配置java开发环境(JDK) 下载 下载地址:http://maven.a ...
- Linux 常规操作指南
1.修改Linux服务器别名 临时修改: vim /etc/hostname 修改别名 永久修改: vim /etc/sysconfig/network 添加 HOSTNAME=别名 重启服务器 ...
- JavaScript--History 对象
history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能. 注意:从窗口被打开的那一刻开始记录,每个浏览器窗口.每个标签页乃至每个框架,都有自己的history ...
- [ZJOI2008]杀蚂蚁
题意翻译 注意在(0,0)已经有蚂蚁的时候是不会生成新蚂蚁的 还有如果有蚂蚁扛着蛋糕,但是不在某个炮的范围内,炮仍然会打最近的蚂蚁 题目描述 最近,佳佳迷上了一款好玩的小游戏:antbuster. 游 ...
- Traceback (most recent call last): File "setup.py", line 22, in <module> execfile(join(CURDIR, 'src', 'SSHLibrary', 'version.py')) NameError: name 'execfile' is not defined
在python3环境下安装robotframework-SSHLibraray报错: Traceback (most recent call last): File "setup.py&qu ...