1、变量的名称由字母、数字、下滑线组成,开头必须是字母,不允许包含空格,通常以下划线进行分割单词,尽量以小写进行命名。
name = "ZhangSan";
user_name = "LiSi";
2、title()方法将变量中的单词首字母进行转大写,upper()方法将变量中所有的单词进行转大写,lower()方法将变量中所有的单词进行转小写。
name = "zhang san";
print(name.title())
name = "li si";
print(name.upper());
name = "WANG WU";
print(name.lower());
3、lstrip()方法去掉左边空白,rstrip()去掉右边空白,strip()去掉头部跟尾部空白;“\t\n”是制表符。
name = "\tzhang san";
print(name)
print(name.lstrip())
name = "li si\t";
print(name)
print(name.rstrip());
name = "\tWANG WU\t";
print(name)
print(name.strip());
4、str()方法将整数型等进行字符串转换。
age = 23;
print("age:" + str(age));
5、Geary中输出中文乱码,在头部声明"#coding=gbk",等号附近不允许出现空格,同时注释也是用“#”。
#coding=gbk
#我是注释
6、append向列表(数组)里面添加元素,insert向列表(数组)里面指定索引位置添加元素,del删除列表内指定索引元素,remove删除指定元素,pop()默认删除末尾元素也可以指定索引删除元素。
# coding=gbk
# 原始列表
user = ['张三','李四']
print(user);
# 添加王五元素
user.append('王五');
print(user);
# 在头部添加赵六,所有原始后移一位
user.insert(0,'赵六');
print(user);
# 删除头部元素
del user[0];
print(user);
# 删除尾部元素
user.pop();
print(user);
# 删除指定元素张三
user.remove('张三');
print(user);
# 删除指定索引元素
user.pop(0);
print(user);
7、sort() 对列表进行从小到大排序;使用函数sorted() 对列表进行临时排序;使用方法reverse()将元素反转;各函数传递参数reverse=True可以反向排序;len()获取长度。
# coding=gbk
# 原始列表
user = ['A','D','B','X','F']
print(user);
print("******");
# 临时从小到大排序
print(sorted(user));
print(user);
print("******");
# 临时从小到大排序,反转
print(sorted(user,reverse=True));
print(user);
print("******");
# 永久从小到大排序
user.sort();
print(user);
print("******");
# 永久从小到大排序,反转
user.sort(reverse=True);
print(user);
print("******");
# 直接将列表反转
user.reverse();
print(user);
# 输出列表长度
print(len(user));
8、遍历列表,for循环后面第一条语句要进行缩进。
# coding=gbk
user = ['zhao','qian','sun','li']
for info in user:
print("欢迎 \n\t" + info.title() + " 先森.");
9、for循环后面的语句要进行缩进,嵌套在for循环里面的语句必须缩进。
# coding=gbk
number = (1,2)
for value in number:
print("输出多个value")
print(value)
print("***无耻的分割线***")
for value in number:
print("只输出一个value")
print(value)
10、min、max、sum对数字进行简单的统计。
number = (1,2,3,4,5,6,7)
print(min(number))
print(max(number))
print(sum(number))
11、列表解析 将for 循环和创建新元素的代码合并成一行, 并自动附加新元素。
number = [value for value in range(1,10)]
for value in number:
print(value)
12、获取列表中从指定索引到指定索引位置的元素,复制指定所引到指定索引位置的元素。
number = [value for value in range(1,10)]
code = number[1:3]
for value in code:
print(value)
13、不可变的列表被称为元组,通常使用圆括号标识,可以通过索引来访问元素,虽然不能修改元组的元素, 但可以给存储元组的变量重新赋值。
number = (1,2,3)
for value in number:
print(value)
print("*****")
number = (4,5,6)
for value in number:
print(value)
14、使用and和or检查多条件
# coding=gbk
age = 23;
if age < 2:
print("婴儿")
elif age > 1 and age < 6:
print("小朋友")
else:
print("大朋友")
print("*****")
number = [value for value in range(1,5)]
if 3 in number:
print("包含3")
else:
print("不包含3")
15、字典是键值对,每个键都与一个值相关联,可以使用键来访问与之相关联的值。可以利用关键字代替索引的方法访问字典,同时,可以直接对新的关键字赋值实现在字典中添加新元素,可以使用del语句删除字典中的元素。
# coding=gbk
person = {'name':'张三','age':'23'}
print(person)
person['sex'] = '男'
print(person)
del person['age']
print(person)
16、遍历字典,通过keys,values,items分别获得字典的不同内容列表,可以利用set([])去除列表中的重复项。
# coding=gbk
person = {'name':'张三','age':'23','city':'湖南','address':'湖南'}
for key,value in person.items():
print("key:"+key+",value:"+value);
for key in person.keys():
print("key:"+key)
for value in person.values():
print("value:"+value)
for value in set(person.values()):
print("value:"+value)
17、字典、列表多层嵌套。
# coding=gbk
person = {'name':['张三','李四','王五'],'book':['语文','数学','英语']}
for key,value in person.items():
print("key:"+key)
for content in value:
print("\t"+content)
18、函数input()接受一个参数,即要向用户显示的提示或说明。 使用函数input()时, Python将用户输入解读为字符串。如果要解读为数值需要使用int()方法。
#coding=gbk
city = []
flag = True;
while flag:
cityName = input("请输入一个城市 :")
city.append(cityName)
repeat = input("还有要添加的城市吗? Y/N :")
if repeat == 'Y':
continue
elif repeat == 'N':
flag = False
else:
continue
19、编写函数时给参数定义默认值,可以在调用时省略相应的参数。传递任意数量的实参。
#coding=gbk
#~固定参数顺序的函数
def on_success(name, desc):
print(name + " : " + desc)
#~参数具备默认值的函数
def on_error(name='张三', desc='电话号码格式不正确'):
print(name + ":" + desc)
#~固定参数+任意参数的函数
def on_ok(name, *desc):
print(name + ":" + str(desc))
on_success('李四','注册成功')
on_error('李四')
on_error(desc='注册失败',name='李四')
on_ok('李四','邮箱不正确','密码不一致')
20、导入函数,整个文件或指定函数。
#coding=gbk
#~导入整个文件,通过名称调用函数
import check
check.on_success()
#~导入单个函数
from check import on_success
on_success()
#~导入多个函数
from check import on_success,on_error
on_success()
on_error
#~函数别名
from check import on_success as os,on_error as oe
os()
oe()
21、编写类,初始化方法,修改类属性,继承父类,重写父类的方法。
#coding=gbk
#~ 打开模块user,导入User类
# ~ from user import User
#~ 打开模块object,导入User类跟Dept类
# ~ from object import User,Dept
# ~ 导入整个user模块
# ~ import user
class User():
#~ 定义初始化方法
def __init__(self, name, sex, age):
self.name = name
self.sex = sex
self.age = age
#~ 构造方法
def update_sex(self, sex):
self.sex = sex
#~ 构造方法
def show(self):
print(self.name + "," + self.sex + "," + self.age)
class Admin(User):
#~ 定义初始化方法
def __init__(self, name, sex, age):
#~ 初始化父类
super().__init__(name, sex, age)
#~ 定义子类属性
self.password = '000000'
# ~重写父类方法
def show(self):
print("重写后:"+self.name + "," + self.sex + "," + self.age + ","
+ self.password)
#~ 构造方法
def update(self, password):
if password != '000000':
self.password = password
print("密码修改成功:" + self.password)
else:
print("密码未修改")
#~ 构造方法
def recover(self):
if self.password != '000000':
self.password = '000000'
print("密码重置成功:" + self.password)
else:
print("密码是初始密码:" + self.password)
my_admin = Admin('张三', '女', '15')
my_admin.show()
my_admin.update_sex('男')
my_admin.show()
my_admin.update('123456')
my_admin.recover()
22、读取文件内容。
#coding=gbk
# ~ 定义文件相对路径
file_path = 'file/number.txt'
# ~ 定义接收内容的变量
file_content = ''
# ~ 开始一行一行读取内容,读取到的内容是一个列表且带尾部有空格
with open(file_path) as file_object:
lines = file_object.readlines()
# ~ 开始遍历读取的内容,去掉尾部空格
for line in lines:
file_content += line.strip()
# ~ 输出前面4个字符
print(file_content[0:4])
# ~ 定义文件绝对路径
file_path = 'F:/SoftWareWorkSpace/python_work/file/number.txt'
# ~ 读取整个文件内容
with open(file_path) as file_object:
fileContent = file_object.read()
print(fileContent)
23、写内容到文件。
#coding=gbk
# ~ 定义文件路径
file_path = 'file/person.txt'
# ~ 定义循环终止条件
flag = True
# ~ 定义录入人数
num = 0;
while flag:
num += 1
# ~ 发起用户会话录入信息
name = input("请输入来访人姓名: ")
cell = input("请输入来访人电话: ")
# ~ 开始以追加模式写入文件
with open(file_path,'a') as file_object:
if num == 1:
content = '姓名: ' + name + " , 联系电话: " + cell
else:
content = '\n姓名: ' + name + " , 联系电话: " + cell
file_object.write(content)
message = input("还有需要录入的人员吗? (Y/N) : ")
if message == 'Y':
number = num + 1;
print("开始录入第 " + str(number) + " 位人员")
else:
flag = False;
print("本次到访一共: " + str(num) + " 人,录入结束")
24、捕获异常。
#coding=gbk
count = input("请输入一个数字")
number = input("请再输入一个数字")
try:
result = count / number;
print("数字相除结果: "+ str(count))
except:
print("输入的字符有误,程序退出.")
25、切割字符。
#coding=gbk
message = "Hello,Word"
result = message.split(',')
print(result)
26、读写文件,json格式存储信息。
#coding=gbk
# ~ 引入json
import json
# ~ 定义获取用户方法
def get_user_info():
# ~ 定义文件相对路径
file_path = 'file/user.json'
try:
# ~ 读取文件,获取信息
with open(file_path, 'r') as file_object:
username = json.load(file_object)
except:
# ~ 读取文件失败返回空
return None
else:
# ~ 读取文件成功返回结果
return username
# ~ 定义检查用户方法
def check_user_info():
# ~ 获取用户信息
username = get_user_info()
# ~ 获取成功
if username:
print("欢迎回来: " + username + " !")
else:
# ~ 提示用户输入信息
username = input('请输入用户名')
# ~ 定义文件路径
file_path = 'file/user.json'
# ~ 写入用户数据
with open(file_path, 'w') as file_object:
json.dump(username, file_object)
print("用户注册成功")
check_user_info()
27、测试模块,在TestCase 类中包含了方法setUp() ,Python将先运行它,再运行各个以test_开头的方法,最后窗口会输出各个方法通过情况。
#coding=gbk
# ~ 导入测试模块
import unittest
# ~ 导入需要测试的类
from user import User
# ~ 定义测试类继承测试模块的TestCase类
class TestUser(unittest.TestCase):
# ~ 定义全局的变量
def setUp(self):
name = '张三'
self.my_user = User(name)
self.my_language = ['英语','法语','俄语']
# ~ 第一个测试方法
def test_add_language(self):
self.my_user.add_language(self.my_language[0])
self.assertIn(self.my_language[0], self.my_user.language)
# ~ 第二个测试方法
def test_add_language_more(self):
for value in self.my_language:
self.my_user.add_language(value)
for value in self.my_language:
self.assertIn(value, self.my_user.language)
# ~ 第三个测试方法
def test_show(self):
self.my_user.show_name()
self.my_user.show_language()
# ~ 执行测试类中所有的测试方法
unittest.main()