变量和简单数据结构
变量
- 字母、下划线作为开头
- 变量名不包含space
字符串
- 单双引号都可以用,所以string中灵活包括引号和撇号
变量.title() 开头大写 ; .upper() .lower() 方法后面都跟着括号- 合并string如
变量 = 变量 + " " +变量 - 制表符换行符一样
- 删除空白
.rstrip() 右边空白,.lstrip() .strip() 。 如果要改变变量记得赋值。 += 可以添加字符
数字
- 乘方
** - 当数字变量转换为字符类型时,尽量使用
str(变量) 来避免类型错误
注释
#
列表简介
杂杂知识
- 列表用
[ ] 表示,逗号分隔 - 索引从0 开始
- 修改列表某项,跟数组一样
- 添加到后面用
.append(xxx) - 插入到列表
.insert(position,xxx) - 删除元素
del 变量[x] ; .pop() 如果没有指定position,则删除末尾元素,并且可以赋值给变量 .remove(xxx) 根据值删除元素
组织列表
.sort() 进行永久性排序,也可以传递参数reverse = True 进行倒序排序sorted() 函数进行临时排序,注意是函数.reverse() 倒着打印,不是倒序排序len() 函数确定长度
操作列表
遍历
- for循环
缩进就是在for范围内,每次print都会换行,并且需要冒号
list = ['aa','bb','cc']
for l in list:
print(l)
print('fuck you')
数值列表
range() 函数 如下会打印1到4,不会打印5
for value in range(1,5):
print(value)
list() 函数转换为列表
numbers = list(range(1,5))
- 数值统计
min(list)
max(list)
sum(list)
- 列表解析
如下生成 1到11平方的列表
list = [value**2 for value in range(1,11)]
使用列表一部分
- 切片
list[0:3]
list[ : 3]
list[-3: ]
- 可以for循环遍历切片,方便
- 复制列表
list = [1,2,3]
list_copy = list [ : ]
list_quote = list
元组
列表是可修改的,元组不可修改
- 定义
用圆括号
tuple = (200,50)
- 修改元组元素
虽然不可以单独修改,但可以重新定义,闲得蛋疼
if语句
an example
num = 1
if num == 1 :
print('yep')
elif num > 1:
print('oops')
else:
print('nope')
- 判断符号还有
> >= < <= != - 检查多个语句
and 或者 or - 检查是否在列表中
bus = [1,2,3,4,5]
if 1 in bus:
print('yep')
if 1 not in bus:
print('nope')
- 确定列表不空
bus = []
if bus:
print('yep')
字典
an example
JEFF = { 'color' : 'tan' , 'height' : 210 }
print(JEFF['color'] )
使用字典
- 添加键值对
JEFF['weight'] = 200
JEFF['IQ'] = 180
- 修改值
JEFF['color'] = 'white'
- 删除键值对
del JEFF['color']
遍历字典
- 遍历所有键值对
for key, value in JEFF.items():
print('\n key: " + key)
print('\n value: " + value)
也可以这样,是自己拟定的
for k , v in JEFF.items():
- 遍历所有键
for name in JEFF.keys():
- 遍历所有值
for name in JEFF.values():
- 按顺序遍历所有键
for name in sorted(JEFF.keys()):
嵌套
- 字典和列表组合,列表的元素可以是字典
- 字典中值也可以是列表
- 字典的值也可以是字典,比如人类字典,某某作为keys,那某某信息的字典可以作为值
用户输入和while循环
input函数工作原理
- example
input的参数是提示的字符串,然后等待用户输入
Jeff = input('Do you think Jeff is handsome or ugly')
print(Jeff)
- 使用
int() 获得数字输入
age = input('what's your age')
age = int(age)
- 求模运算符
%
while简介
- 使用及退出
也可以使用一些标志,active = True 这些
prompt = 'Enter some words'
prompt += 'quit to quit'
message = ""
while message != 'quit' :
message = input(prompt)
print(message)
- 使用break也可以退出,使用continue继续
- 无限循环
ctrl+c 结束
函数
定义函数
def func():
print('111')
func()
- 传递信息
def func(user):
print("hello " + user.title() )
- 关键字实参和默认值(实参形参一般形式略)
def func(f1,f2='col'):
print(f1+f2)
func(f2 = 'cool' , f1 = 'you are')
- 返回值
def func(f1,f2):
f = f1 + f2
return f
temp = func('you','me')
print(temp)
- 让实参变得可选
def func(f1,f2,f3=''):
if f3:
print(f1+f2+f3)
else:
print(f1+f2)
- 可以返回字典
- 可以传递列表
def func(dic):
for d in dic:
print(dic.title()+' ')
dic = ['a','b','c']
fucn(dic)
- 用
func(dic[:]) 这样传入的就是dic的副本,有时候一些修改就不会影响到dic - 传递任意数量
def func(zip,*top) 加个星号,这样可以传入1到无数个参数 - 将函数存储在模块中,相当于头文件
def make_pizza(size,*top):
...
import pizza
pizza.make_pizza(10,'jeff')
-
导入特殊函数 from module_name import function1,2,3... -
指定别名 from pizza import make_pizza as mp import pizza as p -
导入所有函数 from pizza import * 这样就无需使用句号表示法,但是引用别人家的大型模块时,不建议。
类
- 创建类
class Name(): 首字母大写,类定义括号为空,因为要从空白创建这个类 - ``init()方法
python调用__init__()方法来创建类实例,自动传入实参self,每个与类相关联的方法调用都会自动调用self来指向实例本身引用。
def __init__(self,name,age):
self.name = name
self.age = age
- 创建实例
class Dog():
snip--
my_dog = Dog('Bobby',2)
访问属性: my_dog.name 调用方法: my_dog.sit()
- 修改属性值
- 直接修改
- 修改属性的方法
继承
class DDog(Dog):
def __init__(self,name,age):
super().__init__(name,age)
self.height = 20
这样DDog就会继承父类的所有属性,也可以自己添加新的属性和方法
- 导入类
from car import Car - 导入多个类
class Car():
--snip--
class Battery():
def __init__(self,battery_size = 80):
self.battery_size = battery_size
--snip--
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery = Battery()
from car import ElectricCar
mt = ElectricCar('tesla','mode s' ,2015)
mt.battery.describe_battery()
- 导入所有类,不推荐
- 一个模块导入到另一个模块
|