今天学习条件,循环等语句
再谈print:
print("a",",","b") print("a"+",","b") print("a",end="") print("a")
导入模块的几种方式:
import module from module import fun,fun1 from module import *
如果两个模块中有名字相同的函数,则如下:
import module module1.fun module2.fun
或指定别名:
from module1 import fun as func1 from module2 import fun as func2
下面演示一些赋值魔法:
a,b,c=1,2,3 #并行赋值 print(a,b,c) a,b=b,a print(a,b,c) v=(4,5,6) a,b,c=v#数量必须相等,否则报错。此法可以配合popitem随机弹出字典中一个的键-值对 print(a,b,c)
如果赋值的数量不等,可用*吸收,星号可以放在任意位置:
v=(4,5,6,7) a,b,*c=v print(a,b,c) a,*b,c=v print(a,b,c)
但带星号的变量始终是一个序列。
a=b=2#链式赋值,一个变都变。不同于a=2(换行)b=2
链式赋值要说到py的内存分配原理,py是为某个元素分配内存,之后为它连接到某个变量上,链式赋值相当于连接到多个变量,那些变量都能对那部分内存进行操作。
python中的false,None,(),””,[],{},0以及各种类型都被视为假,其他各种值都被视为真。
if,else,else if与C用法高度相似。py增加了in(是容器中的成员),not in,is(是同一个对象),is not 几个逻辑运算。
注意,由于py的内存分配方式,is绝对不能用于常量,否则会产生魔法效果。
字符串的比较是按照字典序比较,直接用大于小于号(例如:”alpha”<“beta”)。如果把两个列表相比较,原理大致相同,这里不再赘述。python可以用C中无法实现的链式比较。
布尔运算符:and,or,not相当于且,或,非。
while循环不再赘述,给出如下示例,这样能防止空名字的出现(也可以while or name.isspace):
name="" while not name.strip(): name=input() print(name)
py设计有一条原则,能用for循环就尽量不用while:
name=["a","b","c","d","e"] for word in name: print(word)
py提供了创建范围的内置函数range:
name=["a","b","c","d","e"] for word in range(0,5): print(name[word])
range如果只有一个参数,就默认以0开始,该参数结束。