python学习日记6

今天学习条件,循环等语句

再谈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开始,该参数结束。

知识共享许可协议
Text is available under CC BY-NC-SA 4.0 unless otherwise stated.

除非特殊声明,本站所有内容均以 CC BY-NC-SA 4.0协议授权。
上一篇
下一篇