note1
1、交互式输入:
input()用法:
python3:
var=input("please input a varible:")
print(var)
eval():取出变量中的值
a=5
eval("a") ----> 5
python2:
var=raw_input("please input a varible:") ----相当于python3中的input()
print(var)
var2=input("please input a string:")
please input a string:(此处交互输入):
若输入的是带引号""的字符串,如”jack",则结果:print(var2) ----> 'jack'
若输入的是不带引号""的字符串,则认为是个变量,该变量必须先定义(否则出错),如jack="student",交互处输入:jack,则结果:print(var2) ----> 'student'
python2中的input()相当于python3中的eval()
luck_num=22
input_num=input("Input the guesss num:")
---在Python2中输入的是什么类型的数据就去找什么类型的数据(若输入的是aa,则认为a是变量,(因aa没有先定义而出错)若输入的是"aa",则认为是字符串,将该字符串与数字进行比较)),而在python3中默认输入的是字符串,会出错
input_num=int(input("Input the guesss num:")) ---在python3中的正确写法:把交互输入的字符串的格式转为数字的格式,输入的必须是数字,若是字符也会出错
input_num=raw_input("Input the guesss num:") ---python2中,若输入的是数字或字符串也可以,则会把字符串跟数字比较。
if input_num == luck_num:
print("bingo")
elif input_num > luck_num:
print("the real number is smaller")
else:
print("the real number is bigger")
while循环
luck_num=22
while Ture:
input_num=int(input("Input the guesss num:"))
if input_num == luck_num:
print("bingo")
elif input_num > luck_num:
print("the real number is smaller")
else:
print("the real number is bigger")
luck_num=22
input_num=-1
while input_num != luck_num:
input_num=int(input("Input the guesss num:"))
if input_num > luck_num:
print("the real number is smaller")
elif input_num < luck_num:
print("the real number is bigger")
print("bingo")
循环次数的限制:
luck_num=22
input_num=-1
count=0
while count < 3:
print("count:",count)
input_num=int(input("Input the guesss num:"))
if input_num > luck_num:
print("the real number is smaller")
elif input_num < luck_num:
print("the real number is bigger")
else:
print("bingo")
break
count +=1
else: #当前面条件不满足时(循环正常退出),执行该语句;当上面的循环没有被正常退出,如break,则下面的不执行
print("too many try")
for循环:
luck_num=22
input_num=-1
for i in range(3)
input_num=int(input("Input the guesss num:"))
if input_num > luck_num:
print("the real number is smaller")
elif input_num < luck_num:
print("the real number is bigger")
else:
print("bingo")
break
else:
print("too many try")
2、字符串格式化
name=input("name:")
age=input("age:")
job=input("job:")
print("Information of :" + name + "\nName:" + name + "\nAge:" + age + "\nJob:" + job)
print("Information of %s:\nName:%s\nAge:%s\nJob:%s" %(name,name,age,job))
name=input("name:")
age=input("age:")
job=input("job:")
message='''Information of %s:
Name:%s
Age:%s
Job:%s
''' % (name,name,age,job)
print(message)
(其中''' '''或者""" """"表示注释)
ps:字符串是%s,整数%d,浮点数%f
字符串常用功能:
移除空白:name=input("name:").strip()
当输入的字符串前有多个空格,会移除该字符串前面的空格,如输入: Alex,则会认为输入的是:Alex
分割
长度
索引
3、列表常用操作
name_list=["jack","tom","ross"]
pring(name_list) ----> ['jack', 'tom', 'ross']
dir(name_list) ---- ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
type(name_list) ---- <class 'list'>
追加:append()
name_list.append("tom")
pring(name_list) ----> ['jack', 'tom', 'ross', 'tom']
索引:index() ---只能查找到列表中元素“tom”的第一个索引值
name_list.index("tom")
运行结果:1
统计:count() ---统计列表中元素”tom“的个数
name_list.count("tom")
插入:insert() ---在第二个元素后插入"fack"
name_list.insert(2,"fack")
运行结果:['jack', 'tom','fack', 'ross', 'tom']
删除:pop() ---删除列表中的最后一个元素
name_list.pop()
运行结果:['jack', 'tom','fack', 'ross']
删除:remove() ---删除列表指定的元素(只能删除第一个)
name_list.remove("fack")
运行结果:['jack', 'tom','ross']
删除:将列表中指定的元素都删除
for i in range(name_list.count("tom)):
name_list.remove("tom")
反转:reverse()
name_list.reverse()
运行结果:['ross', 'tom','jack']
排序:sort() ---按照ASKII排序
name_list.sort()
name_list ---->
切片:
name_list=['jack', 'tom','fack', 'ross', 'sary','key']
name_list[0:3] ----> ['jack', 'tom','fack']
name_list[:3] ----> ['jack', 'tom','fack']
name_list[1:3] ----> ['tom', 'fack']
name_list[1:5] ----> ['tom', 'fack', 'ross', 'sary']
name_list[2:5] ----> ['fack', 'ross', 'sary']
name_list[1:5:3] ----> ['tom', 'sary']
name_list[-5:-2] ----> ['tom', 'fack', 'ross']
name_list[-5:-1] ----> ['tom', 'fack', 'ross', 'sary']
name_list[-5:] ----> ['tom', 'fack', 'ross', 'sary', 'key']
extend():
name_list=['jack', 'tom','fack', 'ross', 'sary','key']
other=["way","test","num"]
name_list.extend(other)
name_list ----> ['jack', 'tom', 'fack', 'ross', 'sary', 'key', 'way', 'test', 'num']
kube="Alex Li"
name_list.extend(kube)
name_list ----> ['jack', 'tom', 'fack', 'ross', 'sary', 'key', 'A', 'l', 'e', 'x', ' ', 'L', 'i']
判断某元素是否在列表中:
name_list=['jack', 'tom','fack', 'ross', 'sary','key']
"tom" in name_list ----> 运行结果:True
name_list=['jack', 'tom','fack', 'ross', 'sary','key']
if "tom" in name_list:
print("the tom is in the name_list")
运行结果:the tom is in the name_list
4、元组
同列表,但只读
name=('jack', 'tom','fack', 'ross')
dir(name) ---- 'count', 'index']
type(name) ---- <class 'tuple'>
将元组转换为列表:
list(name) ----> ['jack', 'tom', 'fack', 'ross']
将列表转换为元组:
tuple(name_list) ----> ('jack', 'tom','fack', 'ross', 'sary','key')
基本操作:索引,切片,循环,长度
5、运算
% --取模,取余数
** --幂,x的y次幂
// --取整,返回商的整数部分
==,!=,>,<
= --赋值
+= --加法赋值运算符
-= --减法赋值运算符
*= --乘法赋值运算符
/= --除法赋值运算符
%= --取模赋值运算符
位运算符:二进制运算
& --位与
| --位或
^ --异或,一真一假为真
<< --左移动
>> --右移动
逻辑运算:
and --布尔"与"
or --布尔"或"
not --布尔"非"
成员运算符:
in --如果在指定的序列中找到值返回True,否则返回False;
not in --如果在指定的序列中没有找到值返回True,否则返回False;
身份运算符:用于比较两个对象的存储单元
is --判断两个标识符是不是引用自一个对象:
如:x is y:如果id(x)等于id(y),返回结果1:a=2,b=2,a is b 返回结果为True
is not --判断两个标识符是不是引用自不同对象:
如:x is not y:如果id(x)不等于id(y),返回结果
初识文本的基本操作
打开文件:
file_obj = file("文件路径","模式")
打开文件的模式有:
r,以只读方式打开文件
w,打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
w+,打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
读取文件的内容:
# 一次性加载所有内容到内存
obj.read()
# 一次性加载所有内容到内存,并根据行分割成字符串
obj.readlines()
# 每次仅读取一行数据
for line in obj:
print line
写文件的内容:
obj.write('内容')
关闭文件句柄:
obj.close()