1.变量和简单数据类型
1.1 变量
跟其他语言差不过,直接赋值
注意命名细节
1.2 数据类型
1.2.1 字符串
可以是“ ” , 也能是‘ ’ ,可以更加灵活运用。
upper() :全部改为大写
lower():全部改为小写
title():首字母大写
合并:+
\n
rstrip() :删除右空格 lstrip():只删除左边 strip():两端
1.2.2 数字
** :乘方
str():转换为字符串
#:加注释
2.列表
用[ ]表示,类似于数组
2.1修改、添加、删除
append(): 在后面添加
insert(0," "):在0处插入
del a[0] :删除 (要知道索引)
pop(): 弹出最后一个元素,可获取
pop(0):弹出指定位置
remove(“abc”):删除指定的值
2.2 组织列表
sort():永久性排序 a.sort()
sorted():暂时排序 sorted(a)
reverse():反转列表顺序,倒过来
len():长度
2.3 操作列表
2.3.1 循环
for a in as :
缩进很重要
2.3.2 数值列表
range(1,6): 生成从1到6列表
range(1,12,3):间隔为3
创建数值列表:list(range(1,6))
min()
max()
sum()
切片:a[0:3]
复制列表:a=b[:]
2.4 元组
用()表示
元组中值不能改变但是可以给元组重新赋值
3.if 语句
1.使用循环:
for a in as:
...
2.if else 语句:
if: 要加冒号
elif:
else:
用 and or 连接
3.检查特定值是否 在列表中:‘ A’ in as
if a in as:
4.字典
4.1 基本用法
1.定义:a={‘color’:‘green’,sex:‘man’}
2.访问:a[‘color’]
3.添加:a[‘age’]=21 (不存在的元素)
4.修改:a[‘age’]=22 (已经存在的元素)
5.删除:del a[‘age’]
6.遍历:
for x, y in a.items(): items()返回键-值列表
for x in a.keys(): keys()返回键,所有键
for x in sorted(a.keys()): 顺序遍历keys,上面是乱序的
for y in a.values(): 遍历所有值
4.2字典嵌套
1.字典列表
a=[a1,a2,a3] 每个都是一个字典
range(30) 30个数
a.append(new_a) 在a里面加入新as
len(a) a的长度
2.在字典中存储列表
a={‘age’:[1,2,3,4]} 返回的是一个列表
3.在字典中存储字典
a={‘age’:{‘man’:21,‘woman’:22}} 返回的是字典
5.用户输入和while循环
5.1 用户输入
input () 输入的是字符串
int() 变为int类型
% 求模运算
5.2 while循环
while :
使用标志:立个flag
break 退出循环
continue 继续
用while循环移动字典:
unconfirmed_users=['a','b','c']
confirmed_users=[]
while unconfirmed_users:
current_users=unconfirmed_users.pop()
print("Verifying users: "+current_users.title())
confirmed_users.append(current_users)
print("\nThis is confirmed users:")
for confirmed_users in confirmed_users:
print(confirmed_users.title())
删除特定值:
while 'cat' in pets:
pets.remove('cat')
6.函数
6.1 定义函数
6.1.1 定义与调用
def greet_user():
"""显示简单的问候语"""
print("hello!")
greet_user()
“”" 这是文档字符串,用来描述函数是做什么的 “”"
6.1.2 传递参数
def greet_user(usename):
"""显示简单的问候语"""
print("hello "+usename)
greet_user('jihome')
6.2 传递实参
6.2.1 位置实参
按顺序定位的,参数的前后位置。
参数与的传递顺序很重要。
6.2.2 关键字实参
greet_user(usename=‘jihome’)
对每个形参指定特定的实参
6.2.3 默认值(缺省值)
def greet_user(usename=‘jihome’)
6.3 函数返回值
1.返回简单值
def get_name(xing,ming):
"""返回全名"""
full_name=xing+' '+ming
return full_name.title()
me=get_name('xu','jihong')
print(me)
2.返回字典
def get_name(xing,ming):
"""返回全名"""
full_name={'xing':xing,'ming':ming}
return full_name
me=get_name('xu','jihong')
print(me)
3.函数与while循环结合
4.可以给函数传递列表
5.传递任意数量的实参
用(*参数):参数里面是一个空元组
def study_language(*yuyan):
"""学习的语言"""
print("\m这是你学习的语言:")
for l in yuyan:
print("-"+l)
study_language('Python')
study_language('Python','Java','C','C++','C#')
6.将函数存储在模块中
保存为.py文件
在另一个文件中import 就行 :import sl
导入特定函数:from sl import study_language
用as指定别名:from sl import study_language as s_l
导入所有函数:from sl import *
7.类
7.1 创建和使用
创建一个Dog()类:
class Dog():
def __init__(self,name,age):
"""初始化函数"""
self.name=name
self.age=age
self.master="John" #类参数的默认值
def sit(self):
print(self.name.title()+"is sitting")
def roll_over(self):
print(self.name.title()+"is rolled over")
self :它是一个指向实例本身的引用,类似于this
–init–:初始化函数,相当于构造函数
使用和其他类似,用.调用
可以定义一个函数修改类里面的值:
def new_master(self,master):
self.master=master
7.2 继承
7.2.1.一个小例子描述继承:
#car.py
class Car():#父类
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.od_reading=0
self.gas=100
def description(self):#父类自己的方法
print(self.make+" "+self.model+" "+self.year)
def fill_gas(self):
self.gas=100
class ECar(Car):#子类
def __init__(self,make,model,year):
super().__init__(make,model,year) #初始化父类属性
self.battery=100 #子类自己属性
def ds_ba(self):
print("The batterry is"+str(self.battery))
def fill_gas(self):#重写父方法
print("This car doesn't need gas")
mycar=Car('BMW','X5','2020')
mycar.description()
nextcar=ECar('TSL','Model3','2020')
nextcar.fill_gas()
7.2. 2.导入类
from car import Car,ECar #导入模块中的类
import car #导入整个模块
from car import * #导入模块中所有类
7.2.3.Python标准库
用import 来导入其他人写的类。
8.文件和异常
8.1 文件读取
8.1.1.在.py文件夹下添加一个.txt文件,打开文件
with open('pi.txt') as file_object:
contents=file_object.read()
print(contents.restrip())
with是在不再需要访问文件时close()掉,不用手动关闭
read():读取文件,在结尾加空行,可以用rstrip()去掉
逐行读取:
with open('pi.txt') as file_object:
for line in file_object:
print(line.rstrip())
读取每行并存进列表
lines=file_object.readline()
8.1.2.文件路径
Linux和OS中:/
Windows:\
file_path=‘C:\Users\pi.txt’
8.2 文件写入
写入文件
filename='Lover.txt'
with open(filename,'w') as file_object:
file_object.write("I love Jowen\n")
file_object.write("Jowen love John too\n")#两个就是多行
注:'w’是写入模式。其他的还有:
‘r’:读取(只读),默认的 ‘a’:附加模式 ‘r+’读取和写入
8.3 异常处理
使用try-except-else处理异常
a=float(input("请输入a:"))
b=float(input("请输入b:"))
try:
answer=a/b
except ZeroDivisionError:
print("You can't divide by zero!")
else:
print(answer)
pass语句是跳过什么都不做
expect:pass
8.4 存储数据
8.4.1.用json.dump()存数据
#write.py
import json
number=[2,3,5,7,11,13]
filename='numbers.json'
with open(filename,'w') as f_obj:
json.dump(number,f_obj)
8.4.2.用json.load()访问数据
#read.py
import json
filename='numbers.json'
with open(filename) as f_obj:
numbers=json.load(f_obj)
print(numbers)
8.4.3.一个综合应用的 小例子:
import json
filename='usenaem.json'
try:#如果存在这个文件,直接读入数据
with open(filename) as f_obj:
username=json.load(f_obj)
except:#否则创建一个文件存储用户名
username=input("input your name:")
with open(filename,'w') as f_obj:
json.dump(username,f_obj)
print("We'll remember you when you come back,"+username+"!")
else:#如果存在,输出欢迎回来
print("Welcome back,"+username+"!")
9.测试代码
就是测试你写的东西是否正确
写在后面:
因为数值分析的需要,又重新好好学习下Python,用的是这个经典的《Python编程从入门到实践》,记的笔记比较简单,主要是联系其他语言来学习Python的,这些语言基础语法基本都是大同小异,关键是在于怎么运用,后面也会结合一些实例来分享我的学习。
第二次更新把这本书的所有基础部分更新完了,至此Python所有的基础语法部分全部解决,后面会结合实践项目来继续学习。