- 感觉最明显的是Python不需要定义数据类型! 声明变量不需要,函数返回值不需要,参数列表也不需要。
- 不需要定义结构体,不需要定义成员
- 数组,集合里的元素的数据类型可以是不一样的!
这些让我好不适应,估计写多了就是适应了。copy下我练习的代码,方便以后查看
- 下面代码涉及: 链表(list),元组(truplea), 字典(dict),分别用[],(),{} 定义
注意truplea是不能修改,防止修改时用。[n1:n2]列表的切片
dict可以用于创建对象,后面的例子会涉及。
#!/usr/bin/python
# 打印“Hi, Python”
message = 'Hi, Python.'
print(message)
# 建立姓名列表"张三", "李四", "王二麻子", "ken"
nameList = ["张三", "李四", "王二麻子", "ken"]
# 打印姓名列表
print(nameList)
# 打印最后一个和倒数第二的名字, +和- 代表方向, -1代表从后面数第一个元素(即最后一个元素)
print(nameList[-1])
print(nameList[-2])
# 从王二麻子开始打印
print(nameList[2:])
# 用Mark替换王二麻子
nameList[2] = "Mark"
# 打印李四到markmei
print(nameList[1:2])
# 元组合列表的区别是?
# 答:元组不能修改。 防止别人误修改的时候用。
# 建立元组"aa", "bb", "ccc"
tuplea = ("aa", "bb", "ccc")
print(tuplea)
print(tuplea[1:])
#tuplea[2] = "cc" #错误,元组不能修改
# 字典跟列表的区别是?
# 答:字典每一个元素都是键值对应的。如果想通过键找到数据,建议使用字典。
# 建立key为key1, value为value1和 key为key2, value为value2的字典
dicta = {"key1": "value1", "key2": "value2"}
# dict增加一项
dicta["key3"] = "value3"
# 打印字典
print(dicta)
# 打印字典的所有的key值
print(dicta.keys())
# 打印字典的所有的value值
print(dicta.values())
# 打印字典的key为"key2"的value值
print(dicta["key2"])
- 定义函数
#!/usr/bin/python
"""
题目
men = ["张三",["李四, [王五]"]]
用函数和递归方法,打印出
人员信息:张三
人员信息:李四
人员信息:王五
"""
def myprint(alist):
for item in alist:
if isinstance(item, list): # 如果item是个list
myprint(item)
else:
print("人员信息:" + item)
men = ["张三", ["李四", ["王五"]]]
myprint(men)
- 访问文件
#!/usr/bin/python
"""
在c盘的根目录下创建一个文件textfile.txt
在文件里随意输入些内容
用Python程序把文件的内容显示出来
"""
# 方法一
print("方法一")
file = open("c:/textfile.txt")
while True:
b = file.readline()
if not b:
break
else:
print(b)
file.close()
# 方法二
print("方法二")
file = open("c:/textfile.txt")
for line in file:
print(line)
file.close()
# 方法三
print("方法三")
with open("c:/textfile.txt") as file:
for line in file:
print(line)
# 写文件
with open("c:/test.txt", "w") as file:
print("I can't forget", file=file)
print("I can forget later", file=file)
- not in可以用set代替,而且set是最简单去除重复项的方法
#!/usr/bin/python
"""
scores = ["2.01", "2-01", "2:05", "2.03", "2.04"]
用程序先把非小数点分隔符改成小数点:"2-01" = 2.01, "2:05" = 2.05
剔除重复项,
再排序,
最后打印
"""
def fixString(str):
if "-" in str:
splitter = "-"
elif ":" in str:
splitter = ":"
else:
splitter = "."
(minu, second) = str.split(splitter)
return minu + "." + second
newScores = []
scores = ["2.01", "2-01", "2:05", "2.03", "2.04"]
for s in scores:
fixed = fixString(s)
if fixed not in newScores:
newScores.append(fixed)
newScores.sort()
print(newScores)
- 列表的推导及用dict创建对象
#!/usr/bin/python
"""
列表里放一些整数,使用推导列表的方法,让其所有整数都翻倍
例如,变更前:
numbers = [1, 3, 5, 7, 9]
变更后:
numbers = [2, 6, 10, 14, 18]
"""
numbers = [1, 3, 5, 7, 9]
numbers = [item * 2 for item in numbers]
print(numbers)
"""
line = ["Mark", "male", "25", "2.05", "2.03", "2.04"],里面的内容分别对应名字,性别,年龄和历史成绩。
使用dict来创建一个对象human,
它的name的key对应:Mark
性别male的key对应:male
它的年龄age的key对应:25
成绩属性(scores)的key对应:"2.05", "2.03", "2.04"
"""
line = ["Mark", "male", "2.05", "2.03", "2.04"]
human = {}
human['name'] = line.pop(0)
human['male'] = line.pop(0)
human['age'] = line.pop(0)
human['scores'] = line
print(human)
line = ["Mark", "male", "25", "2.05", "2.03", "2.04"]
"""define the dict"""
newlist=[line[3:]]
print(dict([('name',line[0]),('male',line[1]),('age',line[2]),('score',newlist)]))
a = set('boy')
print(a)
b = set('terrible')
print(b)
print(a & b)
print(a | b)
print(a - b)