python基础

=====================

----- 
 # 或者 "注释内容" 表示单行注释
 """ 注释内容 """ 或者''' 注释内容 '''表示 多行注释 

基本数据类型
bool函数转换规则
   0,空字符串,None在条件判断语句中等价于false
   其他数值等价于true
-------------	   
   字符串"3.42"可以转成float类型数据3.42, 3.42可以转成int类型数据3,
   但是字符串"3.42"却不可以直接使用int函数转成3
 
 str 表示字符串
 除法中(参与的两个数都是整数时) 希望有小数部分,使用/;不希望保留小数部分用//
 
 字符串大小比较的是内容
 **(幂) 如果是整数之间的运算时,是求多少次方(比如2**3,求的是2的3次方)
 
 输出语句:
 print()
 hello ='云'
 print("我是%d"%hello)
 %,这是python格式化输出。
 比如:
name = 'dongGe'
qq = 'xxxxxxx'
phone = '131xxxxxx'
address = '深圳市xxx'
print("======================")
print('姓名:%s'%name)
print('QQ:%s'%qq)
print('电话号:%s'%phone)
print('公司地址:%s'%address)
print("======================")

 输入语句:
 input()(input接收的数据都是字符串类型)
 type(变量名) (验证类型)
 

 类型
 Number(数字) :int、long、float、complex(复数)
 bool(布尔类型):true、false
 String(字符串)
 List(列表)
 Tuple(元组)
 Dictionary(字典)

标识符的规则:由字母、下划线和字母组成,且数字不能开头。
标识符是区别大小写的。
需要驼峰命名法:
小驼峰法(比如myName、aDog等)
大驼峰法(比如FirstName、LastName等)

判断语句
if 要判断的条件:
	成立的语句

if 成立的条件:
	成立的语句
else:
	不成立的语句
--------
比如:
	age = input("请输入你的年龄:")
	if int(age) >= 18:
		print("你可以去网吧了")
	else:
		print("未成年不能进入网吧")

elif
if 条件1:
	语句1
elif 条件2:
	语句2
elif 条件3:
	语句3
...

说明:当条件1成立后,条件2就不会执行;当条件2不成立,就执行条件2;
最后没有条件的话,可以与else配合使用。
	age = 24
	if age<5:
		print("幼儿园")
	elif age>10:
		print("小学4年级")

-------
if的嵌套格式
	if 条件1:
		满足条件1 做的事情1
		满足条件1 做的事情2
		...
	if 条件2:
		满足条件2 做的事情1
		满足条件2 做的事情2
		...

	# if嵌套
	balance = input("请输入余额:")
	# 座位数
	seat = 1
	if int(balance) > 2:
		if seat > 0:
			print("请找座位做好")
		else:
			print("请不要站在下车口")
	else:
		print("余额不足,请充值后再上公交车")
	
	实例:
	import random
	player = input("请输入:剪刀(0)  石头(1) 布(2):")
	player = int(player)
	# 获取随机数
	computer = random.randint(0,2)
	if player == computer:
		print("你赢了")
	else:
		print("你输了")

============================
--------
while循环
while 条件:
循环体

# 计算1到100的累积和(奇数)
number = 1
sum = 0
while number <= 100 :
	if number%2 == 1:
		sum+=number
	number+=1
print("计算1到100的累积和(奇数): %d"%sum)

while i<5:
j=0
while j<(i+1):
    print("*",end='')
    j+=1
print("\n")
i+=1
--------
i = 1
while i<=9:
j = 1
while j <= i:
    print("%d*%d=%d"%(j,i,i*j),end=" ")
    j+=1
print('\n')
i+=1	

-----
for循环
for 临时变量 in 列表或者字符串等:
	循环体
或者 
for 临时变量 in 列表或者字符串等:
	循环体
else:
	循环不满足时执行的代码

break的作用:结束整个循环
continue的作用:结束本次循环,执行下一次循环。	
注意点:
break/continue只能用在循环中,除此外不能单独使用
break/continue在嵌套循环中,只对最近的一层循环起作用


字符串("")、列表([])、元组(())、字典({})
-------
字符串的输出:
	name = 'dongGe'
	qq = 'xxxxxxx'
	phone = '131xxxxxx'
	address = '深圳市xxx'
	print("======================")
	print('姓名:%s'%name)
	print('QQ:%s'%qq)
	print('电话号:%s'%phone)
	print('公司地址:%s'%address)
	print("======================")
字符串输入:
	name = input("请输入你的姓名")
	字符串的下标从0开始
	
字符串常见操作:
	1、find() 检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
	2、index() 跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
	3、count() 返回 str在start和end之间 在 mystr里面出现的次数
	4、replace() 把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
	5、split() 以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
	6、capitalize() 把字符串的第一个字符大写
	7、title() 把字符串的每个单词首字母大写
	8、startswith() 检查字符串是否是以 obj 开头, 是则返回 True,否则返回 False
	9、endswith() 检查字符串是否以obj结束,如果是返回True,否则返回 False.
	10、lower() 转换 mystr 中所有大写字符为小写
	11、upper() 转换 mystr 中的小写字母为大写
	12、ljust() 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
	13、rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
	14、center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
	15、lstrip() 删除 mystr 左边的空白字符
	16、rstrip() 删除 mystr 字符串末尾的空白字符
	17、trip() 删除mystr字符串两端的空白字符
	18、rfind() 类似于 find()函数,不过是从右边开始查找.
	19、rindex() 从右边开始.
	20、partition() 把mystr以str分割成三部分,str前,str和str后
	21、rpartition() 类似于 partition()函数,不过是从右边开始.
	22、splitlines() 按照行分隔,返回一个包含各行作为元素的列表
	23、isalpha() 如果 mystr 所有字符都是字母 则返回 True,否则返回 False
	24、isdigit() 如果 mystr 只包含数字则返回 True 否则返回 False.
	25、isalnum() 如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
	26、isspace() 如果 mystr 中只包含空格,则返回 True,否则返回 False.
	27、join() mystr 中每个字符后面插入str,构造出一个新的字符串
	
	mystr = "hello world itcast and itcastcpp"
	# 1、mystr.find(str, start=0, end=len(mystr))
	print(mystr.find("cpp",2,10)) # -1
	print(mystr.find("lo",2,10)) # 3
	print(mystr.find("it")) # 12
	print("------------------------------------------")
	# len(mystr) 用于求字符串长度
	# 2、mystr.index(str, start=0, end=len(mystr))
	print(mystr.index("lo")) # 3
	print("------------------------------------------")
	# 3、mystr.count(str, start=0, end=len(mystr))
	print(mystr.count("itcast")) # 2
	print("------------------------------------------")
	# 4、mystr.replace(str1, str2,  mystr.count(str1))
	print("sdi lo lo lo".replace("lo","yu",2)) # sdi yu yu lo
	print("------------------------------------------")
	# 5、mystr.split(str=" ", 4)
	print("my,strssd".split(",",2)) # ['my', 'strss']
	print("my,str,sit,sli".split(",")) # ['my', 'str', 'sit', 'sli']
	print("------------------------------------------")
	# 6、把字符串的第一个字符大写
	print(mystr.capitalize()) # Hello world itcast and itcastcpp
	print("------------------------------------------")
	# 7、把字符串的每个单词首字母大写
	print(mystr.title()) # Hello World Itcast And Itcastcpp
	print("------------------------------------------")
	# 8、检查字符串是否是以 指定字符串 开头, 是则返回 True,否则返回 False
	print(mystr.startswith("wo")) # False
	print(mystr.startswith("he")) # True
	print("------------------------------------------")
	# 9、检查字符串是否以指定字符串结束,如果是返回True,否则返回 False.
	print(mystr.endswith("cpp")) # True
	print("------------------------------------------")
	# 10、转换 字符串 中所有大写字符为小写
	print("HellO WorlD".lower()) # 转换 mystr 中所有大写字符为小写
	print("------------------------------------------")
	# 11、转换 字符串 中的小写字母为大写
	print("hello Word".upper()) # HELLO WORD
	print("------------------------------------------")
	# 12、返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
	string = " lijfs".ljust(10)
	print(string) #  lijfs
	print(len(string)) # 10
	print(len(" lijfs")) # 6
	print("------------------------------------------")
	# 13、返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
	string = " lijfs".rjust(20)
	print(string) #                lijfs
	print(len(string)) # 20
	print(len(" lijfs")) # 6
	print("------------------------------------------")
	# 14、返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
	string = "hello world"
	print(len(string)) # 11
	print(string.center(13)) #  hello world
	print(len(string.center(13))) # 13
	print("------------------------------------------")
	# 15、删除字符串左边的空白字符
	print("  sli sli  ".lstrip(" ")) # sli sli
	print(",,, sll,sli , ".lstrip(",")) #  sll,sli ,
	print("------------------------------------------")
	# 16、删除字符串末尾的空白字符(不仅仅是空白字符,可以删除指定其他的)
	print("  slid   ".rstrip()) #  slid
	print("------------------------------------------")
	# 17、删除字符串两端的空白字符
	print("  sli sli   ".strip()) # sli sli
	# 20、把父字符串以子字符串分割成三部分,子字符串前,子字符串和子字符串后
	print("hello yun yun2 sdf".partition("yun")) # ('hello ', 'yun', ' yun2 sdf')
	# 21、类似于 partition()函数,不过是从右边开始.
	print("hello yun yun2 sdf".rpartition("yun")) # ('hello yun ', 'yun', '2 sdf')
	print("------------------------------------------")
	# 22、按照行分隔,返回一个包含各行作为元素的列表
	print("hello\nworld".splitlines()) # ['hello', 'world']
	print("hello,world".split(",")) # ['hello', 'world']
	print("------------------------------------------")
	# 23、如果 字符串 所有字符都是字母 则返回 True,否则返回 False
	print("slid2dli".isalpha()) # False
	print("2342452".isalnum()) # True
	print("------------------------------------------")
	# 24、如果 mystr 只包含数字则返回 True 否则返回 False.
	print("234324".isdigit()) # True
	print("------------------------------------------")
	# 26、如果 字符串 中只包含空格,则返回 True,否则返回 False
	print("   ".isspace()) # True
	print("------------------------------------------")
	# 27、 字符串 中每个字符后面插入str,构造出一个新的字符串
	print("yu".join("hel")) # hyueyul
	print("yy".join("hh")) # hyyh
	print("yy".join("h")) # h
	
	# 给定一个字符串aStr,返回使用空格或者'\t'分割后的倒数第二个子串
	testStr = "haha inhao a \t heihei \t woshi nide \t hao \npengyou"
	print(testStr.split()) # ['haha', 'inhao', 'a', 'heihei', 'woshi', 'nide', 'hao', 'pengyou']
	
	
-------
下标和切片
	1.下标
	下标就是编号,通过这个编号可以找到对应的存储空间。
	字符串、列表与元组支持下标索引
	比如:
		name = "abcdf"
		name[0] 对应的值是a,以此类推。
	2.切片
	切片是指对操作的对象截取其中一部分的操作。
	字符串、列表、元组都支持切片操作。
	切片的语法:
		[起始:结束:步长]
		这个属于左闭右开型(当结束的下标为负数时,其对应的值不能在起始下标的右边)
	比如:
		name = 'abcdefg'
		print(name[0:3]) # abc
		print(name[3:]) # defg
		# 最后一位的下标是-1,以此往前为-2,-3,-4,-5,-6,0
		print(name[2:-2]) # cde
		print("---")
		print(name[0:-6]) # 输出为a
		print(name[1:-2]) #bcde
		print(name[2:-6])
		print("---")
		# 输出为一行(无效的输出)
		print(name[-2:2])
		print(name[::-2]) # geca
		print(name[::-1]) # gfedcba
		print(name[2:4:1]) # cd
	
-------
	列表(列表中的元素可以重复)
		列表中的数值可以是不同类型
	testList = ["小明",20]	
	
	# 用for遍历list中的数值
	testList = ["lisd","disl",3]
	for i in testList:
		print(i) 
		
	列表的相关操作:
	 1 添加元素(append,extend,insert)
	 2 修改元素 给指定的赋值
	 3 查找元素(in, not in, index, count)
	 4 删除元素(del, pop, remove)
	 5 排序 (sort, reverse)
	 
# 1 添加元素(append,extend,insert)
	names = ["小张","小鲍","小王"]
	# 通过append可以向列表添加元素
	names.append("小李")
	# 循环遍历
	for name in names:
		print(name,end=" ") # 循环完后输出效果:小张 小鲍 小王 小李
	print("\n---------------------")
	# 通过extend可以将另一个集合中的元素逐一添加到列表中
	ages = [15,16,15,18]
	names.extend(ages)
	for name in names:
		print(name,end=" ") # 循环完后输出效果:小张 小鲍 小王 小李 15 16 15 18
	print("\n---------------------")
	# insert(index, object) 在指定位置index前插入元素object
	names.insert(0,"阿里")
	for name in names:
		print(name,end=" ") # 循环完后输出效果:阿里 小张 小鲍 小王 小李 15 16 15 18
	print("\n----------------------")
	
# 2 修改元素 要通过下标来确定要修改的是哪个元素,然后才能进行修改
names = ["小张","小鲍","小王"]
names[2] = "大王"
for name in names:
	print(name,end=" ")
	
# 3 查找元素( in, not in, index, count)
names = ["小张","张三","小鲍","小鲍","小王","小王"]
for name in names:
	if "小王" == name:
		print("找到了小王")
	if "张" not in name:
		print("没有找到:张")
print("-----------------------")
# count(统计)和index(查找下标位置)
print(names.index("小鲍",2,7)) # 左闭右开。 输出为2
print(names.count("小王")) # 输出为2

# 4 删除元素(del, pop, remove)
'''
	del:根据下标进行删除
	pop:删除最后一个元素
	remove:根据元素的值进行删除
'''
names = ["小张","张三","实例","小鲍","小鲍","小王","小王"]
del names[2]
for name in names:
	print(name,end=" ") # 小张 张三 小鲍 小鲍 小王 小王 
print("\n-------------------------")
names = ["小张","张三","实例","小鲍","小鲍","小王","小王"]
names.pop()
for name in names:
	print(name,end=" ") # 小张 张三 实例 小鲍 小鲍 小王 
print("\n-------------------------")
names = ["小张","张三","实例","小鲍","小鲍","小王","小王"]
names.remove("小鲍")
for name in names:
	print(name,end=" ") # 小张 张三 实例 小鲍 小王 小王 
	
# 5 排序 (sort, reverse)
'''
	sort方法是将list按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
	reverse方法是将list逆置
'''
names = [1,2,3,6,3]
names.sort()
for name in names:
	print(name,end=" ") # 1 2 3 3 6
print("\n-------------------------")
names.reverse();
for name in names:
	print(name,end=" ") # 6 3 3 2 1
	
列表也支持嵌套:
# 一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
import random
# 定义一个列表用来保存3个办公室
offices = [[],[],[]]
# 定义8个老师的名字
names = ['a','b','a1','b2',"c1","c2","d","d2"]
for name in names:
	i = random.randint(0,2)
	offices[i].append(name)
i = 1
for office in offices:
	print("办公室%d,有%d个教师" % (i,len(office)))
	for name in office:
		print(name,end=" ")
	i+=1
	print("\n")

-------
元组
	元组与列表类似,不同之处在于元组的元素不能修改(也不能删除其中的元素)。
	元组使用小括号,列表使用方括号。
	aTuple = ("et",18,2.5)
	
元组的内置函数count,index
	index和count与字符串和列表中的用法相同

------
字典
	说明:比如(info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'})
		字典和列表一样,也能够存储多个数据
		列表中找某个元素时,是根据下标进行的
		字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
		字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值

字典是根据键访问值
不确定字典中是否存在某个键而又想获取其值时,可以使用get方法
	info = {"姓名":"小云","年龄":18,"sex":"女"}
	print(info['姓名']) # 小云
	# print(info['address']) # 没有对应的键会报错
	print(info.get("年龄")) # 18
	print(info.get('age')) # None

字典的常见操作1:
	# 增、删、改
	info = {"姓名":"小云","年龄":18,"sex":"女"}
	# 修改元素
	info['年龄'] = 20
	print(info.get('年龄')) # 20
	# 添加元素;如果在使用 变量名['键'] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素
	info['address'] = "甘肃"
	print(info['address']) # 甘肃
	# 删除元素 方法:del 或者 clear()
	# del 变量[键] (删除指定的元素)
	del info['address']
	print(info.get('address')) # None
	# del 变量 (删除这个字典)
	student = {"name":"小明","班级":24}
	del student
	#print('删除后,%s' % student) # NameError: name 'student' is not defined
	# clear 变量 (清空这个字典)
	student = {"name":"小明","班级":24}
	student.clear()
	print("清空后,%s" % student) # 清空后,{}

字典的常见操作2
	# 字典的操作
	'''
	1、len 测试字典中,键值对的个数
	2、keys 获取字典所有key的列表
	3、values 获取字典所有values的列表
	4、items 返回一个包含所有(键,值)元祖的列表
	5、get 获取字典中是否包含某个键(key)对应的值,有返回该值,没有返回None
	'''
	info = {"姓名":"小云","年龄":18,"sex":"女"}
	# 1、len 测试字典中,键值对的个数
	print(len(info)) # 3
	# 2、keys 获取字典所有key的列表
	print(info.keys()) # dict_keys(['姓名', '年龄', 'sex'])
	# 3、values 获取字典所有values的列表
	print(info.values()) # dict_values(['小云', 18, '女'])
	# 4、items 返回一个包含所有(键,值)元祖的列表
	print(info.items()) # dict_items([('姓名', '小云'), ('年龄', 18), ('sex', '女')])
	# 5、get 获取字典中是否包含某个键(key)对应的值,有返回该值,没有返回None
	print(info.get("address")) # False
	print(info.get("姓名")) # 小云

遍历(可以使用for in 的结构,比如字符串、列表、元组、字典等数据结构)
	# 字符串遍历
string = "abcd"
for s in string:
	print(s,end=" ")
print("\n----------------")
#列表遍历
list = ["ab",4,2,4.3]
for st in list:
	print(st,end=" ")
print("\n----------------")
# 元组遍历
tuple = ("sb",12,2.43)
for t in tuple:
	print(t,end=" ")
print("\n----------------")
# 字典遍历
dictionaries = {"姓名":"小黑","age":18,"种族":"妖族"}
# 遍历字典的key(键)
for d in dictionaries.keys():
	print(d,end=" ")
print("\n----------------")
# 遍历字典的value(值)
for v in dictionaries.values():
	print(v,end=" ")
print("\n----------------")
# 遍历字典的项(元素)
for item in dictionaries.items():
	print(item)
# 遍历字典的key-value(键值对)
for key,value in dictionaries.items():
	print("key=%s,value=%s" % (key,value))
输出效果:
	a b c d 
	----------------
	ab 4 2 4.3 
	----------------
	sb 12 2.43 
	----------------
	姓名 age 种族 
	----------------
	小黑 18 妖族 
	----------------
	('姓名', '小黑')
	('age', 18)
	('种族', '妖族')
	key=姓名,value=小黑
	key=age,value=18
	key=种族,value=妖族

# 实现带下标索引的遍历 enumerate()
for i, chr in enumerate(dictionaries):
	print(i,chr)
效果:
	0 姓名
	1 age
	2 种族

------		
公共方法
   ======================================================================================
  | 运算符 	Python 表达式 	     结果 	         描述 	        支持的数据类型           |
  | + 	    [1, 2] + [3, 4]      [1, 2, 3, 4] 	 合并 	        字符串、列表、元组		 |
  | * 	    'Hi!' * 2 	         ['Hi!', 'Hi!']  复制	        字符串、列表、元组		 |
  | in 	    3 in (1, 2, 3) 	     True		     元素是否存在 	字符串、列表、元组、字典 |
  | not in 	4 not in (1, 2, 3) 	 True			 元素是否不存在 字符串、列表、元组、字典 |
   ======================================================================================
	
------
python内置函数
	序号 	方法 	            描述
	================================================
	1		cmp(item1, item2) 	比较两个值
	2		len(item) 			计算容器中元素个数
	3		max(item)			返回容器中元素最大值
	4		min(item)			返回容器中元素最小值
	5		del(item)			删除变量
	================================================
	注意:
		cmp在比较字典数据时,先比较键,后比较值。
		len在操作字典数据时,返回的是键值对个数。
	del 有两种用法(一是del加空格 变量;二是del(变量名)

-------
引用
	python中,值是靠引用来传递的。
	用id()来判断两个变量是否为同一个值的引用(id值相当于内存地址)
	比如:
		a = 2
		b = a
		print(id(a))
		print(id(b))
		print(a == b)
	效果:
		140709584753728
		140709584753728
		True
		-----------
		 a = [1,2]
		 b = a
		 print(id(a))
		 print(id(b))
		 print(a == b)
		 a.append(2)
		 print(id(a))
		 print(id(b))
		 print(a == b)
	效果:
		2235487969864
		2235487969864
		True
		2235487969864
		2235487969864
		True
	
	可变类型与不可变类型
		可变类型,值可以改变:
			列表 list
			字典 dict
		不可变类型,值不可以改变:
			数值类型 int, long, bool, float
			字符串 str
			元组 tuple
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苍茫云雾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值