Python变量和基础语法

一、基本变量类型

Python中有如下数据类型:
Numbers(数值)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)、Set(集合)、bool(布尔)

  • Numbers(数值)
    Python中支持四种数值类型:int、long、float、complex
    • int:有符号整型
      在python3中int类型的长度理论上是无限的只要内存装得下
    • long:长整型
    • float:浮点型
      python变量赋值前不需要声明,如b = 2.23,自动能识别b是float类型
    • complex:复数
      复数分为实部和虚部,如1+2j中【1】就是实部,【2j】为虚部,在python3中即使虚部只是一个j也需要加上系数如:1+1j

  • String(字符串)
    • 字符串可以使用单引号、双引号和三引号来赋值如
      – a = ‘str’
      – b = “str”
      – c = ‘’‘str’‘’
      双引号和单引号没有区别,三引号的内容可以换行,一般用于含有段落的字符内容
    • 字符串切片
      – str = ‘Hello’
      – a = str[0:2]表示截取str字符串中0-2位置的信息,包含0但不包含2:“He”
      – 省略前面则表示从0开始:str[:2];省略后面则表示到结束:str[2:]
    • 其他常见操作
      – 字符串拼接:使用+拼接字符串:‘a’+‘b’
      – print(str * 2)表示输出str两次
    • 转译字符:转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是
      – 如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’‘表示’‘内部的字符串默认不转义,如:print(r’\\t\')
    • 转码:(b’xxx’表示bytes类型)
      – ‘ABC’.encode(‘ascii’) -> b’ABC’
      – ‘中文’.encode(‘utf-8’) -> b’\xe4\xb8\xad\xe6\x96\x87’

  • List(列表)
    • 列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。
      列表用[ ]标识,如:li = [ ‘Hello’, 786 , 2.23, ‘john’, 70.2 ]
    • 列表切片和字符串切片操作一样
    • 列表新增
      – list.append(obj)
    • 列表删除
      – list.remove(obj)
    • 列表修改
      – list.insert(index, obj)
    • 列表查询
      – list.count(obj)
    • 列表排序
      – list.sort([func])

  • Tuple(元组)
    – 元组是另一个数据类型,类似于List(列表),元组使用()来标识:tup1 = (‘physics’, ‘chemistry’, 1997, 2000)
    – 元组中只有一个元素时,需要在元素后面添加逗号,例如:tup1 = (50,)
    – 元组中的元素不能增删改
    – 元组常见操作:
    len(tuple) :计算元组元素个数。
    max(tuple): 返回元组中元素最大值。
    min(tuple) :返回元组中元素最小值。
    tuple(seq) :将列表转换为元组。

  • Dictionary(字典)
    – 字典是一种无序存储结构,包括关键字(key)和关键字对应的值(value)。字典的格式为:dict = {key:value}
    – 字典访问:dict[‘name’]
    – 字典修改:dict['name] = ‘abc’
    – 字典删除:
    • del dict[‘name’]; # 删除键是’name’的条目
    • dict.clear(); # 清空词典所有条目
    • del dict ; # 删除词典
      – 字典内置方法:
    • len(dict) 计算字典元素个数,即键的总数。
    • str(dict) 输出字典可打印的字符串表示。
    • type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
    • dict.clear() 删除字典内所有元素
    • dict.copy() 返回一个字典的浅复制
    • dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
    • dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
    • dict.has_key(key) 如果键在字典dict里返回true,否则返回false
    • dict.items() 以列表返回可遍历的(键, 值) 元组数组
    • dict.keys() 以列表返回一个字典所有的键
    • dict.setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
    • dict.update(dict2) 把字典dict2的键/值对更新到dict里
    • dict.values() 以列表返回字典中的所有值

  • Set(集合)
    – 集合(set)和字典(dict)类似,也是一组key的集合,但不存储value,创建方式:s = set([1, 2, 3]);set是有序不重复的
    – set常用方法
    • s.add(key)
    • s.remove(key)

  • bool(布尔)
    – 在Python中,None、任何数值类型中的0、空字符串""、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了__nonzero__()或__len__()方法且方法返回0或False,则其实例也被当作False,其他对象均为True
    PS:False和True的首字母是大写

  • None
    – 表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

二、条件和循环语句

条件

  • if
	if a > 10:
	  todo
  • if…else
 	if a > 10:
	  todo
	else:
	  todo
  • if…elif …else
 	if a > 10:
	  todo
 	elif a<-10:
	  todo
	else:
	  todo

循环

  • while
	while n < 101:
	    sum = sum + n
	    n = n + 1
  • for … in …
names = ['Michael', 'Bob', 'Tracy']
for name in names:
   print(name)
  • continue, break和pass
    – 循环里如果我们想终止本次循环,可以使用continue
    – 如果想终止整个循环,则使用break
    – Python里使用pass表示空语句,即啥也不做

三、函数

函数定义

  • 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
  • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
    def functionname( parameters ):
       "注释。。。"
       todo...
       return [expression]
    

函数调用

  • 定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构
    	#定义函数
    	def printme( str ):
    	   "打印任何传入的字符串"
    	   print(str);
    	   return;
    	# 调用函数
    	printme("我要调用用户自定义函数!");
    	printme("再次调用同一函数");
    

参数

  • 必选参数:fun(name, age)
    必选参数也称位置参数。必选参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。必须传入对应参数,否则会出现语法错误
  • 默认参数:fun(name=‘yjc’, age=18)
    调用函数时,默认参数的值如果没有传入,则被认为是默认值

可变参数

  • 可变参数:fun(*args)
    顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。

关键字参数

  • 关键字参数:fun(name, age, **kw)
    关键字参数允许我们在传入必选参数外,还可以接受关键字参数kw
    def person(name, age, **kw):
    	"关键字参数让我们保证能接收到name和age这两个参数,但是,如果提供更多的参数,我们也能收到"
    	print('name:', name, 'age:', age, 'other:', kw)
    
    实际上,关键字参数kw是个dict,如果我们已经准备好了dict,只需要在前面加**就可以转换为参数传入
    param = {'gender': 'M', 'job': 'Engineer'}
    >>> person('Adam', 45, **param)
    name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}
    
  • 命名关键字参数:fun(name, age, *, city)
    如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参数。这种方式定义的函数如下:
    def person(name, age, *, city, job):
        print(name, age, city, job)
        # 调用:
    	person('yjc', 22, city='Beijing', job='IT')
    

返回值

  • Python里函数可以返回多个值:
    	#其实这只是一种假象,返回值是一个tuple!
    	#但是,在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,
    	#按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便
    	def updPoint(x, y):
    	    x+=5
    	    y+=10
    	    return x,y
    	x,y = updPoint(1,2)
    	print(x,y)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值