python基础篇-day1
python基础篇
python是由C语言写的;
pass 占位符;
del,python中全局的功能,删除内存中的数据;
变量赋值的方法:
- user,pass = 'freddy','freddy123' 【变量名全是大写,表示是一个全量,最好不要更改;】
for循环语法小技巧:
- for i in range():
- if i >=:break 【在程序比较小的时候,可以使用次方法】
print(i
查看数据类型:
- 【tyep(),】
>>> r=(1,2,3,4,5)- >>> type(r)
- <class 'tuple'>
python格式化输出:
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
- name = input("you input name:")
- age = int(input("you input age:"))
- job = input("you input job:")
- msg = """
- Infomation is %s
- ------------
- name = %s
- age = %d
- job = %s
- ----END-----
- """ %(name,name,age,job)
- print(msg)
使输入的密码不可见,在pycharm中不好使:
- 【getpass.getpass,】
import getpass- username = input("username:")
- password = getpass.getpass("password:")
- print(username,password)
python和linux交互:
- >>> import os
- >>> os.system("dir")
- os.mkdir
【python和linux交互变量赋值方法:把输出的结果赋值给变量名cmd_res,先用popen把结果保存到内存中,然后再用read读出来:】
cmd_res = os.popen("df -h").read()
print ("cmd_res")- 【python,寻找python执行脚本文件路径:】
判断用户输入的账号密码是否正确:
- 【方法一:】
- user="freddy"
- password=""
- username = input("you input user:")
- userpass = input("you input password:")
- if username == user:
- print("user ok.")
- if userpass == password:
- print("passwd ok.")
- else:
- print("pass error")
- else:
- print("error error.....")
- 【方法二:】
- if user == username and password == userpass:
- print("Wecomto Login.")
- else:
- print("User Or Password error.")
for循环,猜年龄小程序:
- 【条件:
- 1.用户一共有十次机会;
- 2.猜三次以后问用户是否要继续;
- 3.如果猜对了,直接退出。】
- count = 0
- for i in range(10):
- if count < 3:
- age = 18
- freddyAge=int(input("You Input Age:"))
- count +=1
- if freddyAge == age:
- print("ok")
- break
- elif freddyAge < age:
- print("tai di le.")
- else:
- print("tai gao le")
- else:
- retry=input("Input you (y/n)")
- if retry == 'y':
- count = 0
- else:
- exit()
- 【方法二:】
count = 0
age = 18
for i in range(10):
if count < 3:
freddy = input("age:")
count +=1
if freddy.isdigit():
freddy = int(freddy)
if freddy == age:
print("ok")
break
elif freddy > age:
print('tai gao le.')
else:
print("tai di le")
else:
print("Ivalid data tyep.")
else:
retry=input("(y/n)")
if retry == 'y':
count = 0
else:
exit('bye bye....')
海枯石烂while循环:
- count=0
- while True:
- count +=1
- if count >50 and count<60:
- continue
- else:
- print("count:%d"%count)
- if count == 100:
- break
- 【方法二:】
count = 0
while True:
count +=1
if count == 100:
break
if count > 50 and count <90:
continue
print('cout:%s'%(count))
列表操作:
- 【列表赋值:】
- >>> name=["freddy",'tang','','']
- 【取tang字符,取的是下标,下标从0开始:】
- >>> name[]
- 'tang'
- 【取88数字:】
- >>> name[-]
- ''
- 【顾首不顾尾:】
- >>> name=["freddy",'tang','','']
- >>> name[:]
- ['freddy', 'tang']
- 【取后三个值,取几个就输入 - 几:】
- >>> name[-:]
- ['tang', '', '']
- 【多次取列表里面的数据:】
- >>> name=["freddy",'tang','','',,,,,]
- >>> name[-:]
- ['', , , , , ]
- >>> name[-:][:]
- [, ]
- >>> name[-:][:][]
- 【给列表中234,改成freddie:】
- >>> name=["freddy",'tang','','',,,,,]
- >>> name[]='freddie'
- 结果:
- >>> name
- ['freddy', 'tang', '', '', 'freddie', , , , ]
- 【insert,给列表插入值[在”tang“后面插入"sheng"]】
- >>> name
- ['freddy', 'tang', '', '', 'freddie', , , , ]
- >>> name.insert(,'sheng')
- >>> name
- ['freddy', 'tang', 'sheng', '', '', 'freddie', , , , ]
- 【append,在列表末尾追加一个值:】
- ['freddy', 'tang', 'sheng', '', '', 'freddie', , , , ]
- >>> name.append('tail')
- >>> name
- ['freddy', 'tang', 'sheng', '', '', 'freddie', , , , , 'tail']
- 【remove,删除列表中指定的值:】
- >>> name
- ['freddy', 'tang', 'sheng', '', '', 'freddie', , , , , 'tail']
- >>> name.remove("freddy")
- >>> name
- ['tang', 'sheng', '', '', 'freddie', , , , , 'tail']
- 【删除下标5~,也是顾首不顾尾】
- >>> name
- ['GroupLong-tang', 'sheng', 'freddie', 'wei', '', , , , , ]
- >>> del name[:]
- >>> name
- ['GroupLong-tang', 'sheng', 'freddie', 'wei', '', ]
- >>>
- 【pop,删除列表中的值,是根据下标来删除的:】
- name=['GroupLong-tang', 'sheng', 'freddie', 'wei',, ,,,,]
- name.pop()
- print(name)
- 【以布长为2,打印列表:】
- >>> name
- ['GroupLong-tang', 'sheng', 'freddie', 'wei', '', ]
- >>> name[::]
- ['GroupLong-tang', 'freddie', '']
- >>>
- 【count,统计列表中23元素的个数(注意:如果列表中,23被‘单引号’括起来,就不能被count所计算):】
- name=['GroupLong-tang', 'sheng', 'freddie', 'wei', , ,,,,]
- if in name:
- list_count=name.count()
- print("---%s--- 23 is/are in name" %list_count)
- 【把name列表中的所有23元素,全部替换成99999999:】
- name=['GroupLong-tang', 'sheng', 'freddie', 'wei', , ,,,,]
- for i in range(name.count()):
- list_index=name.index()
- name[list_index]=
- print(name)
- 【extend,扩展列表:】
- name=['GroupLong-tang', 'sheng', 'freddie', 'wei', , ,,,,]
- name2=[,,,,]
- name.extend(name2)
- print(name)
- 【reverse,反转显示列表内容:】
- name=['GroupLong-tang', 'sheng', 'freddie', 'wei', , ,,,,]
- name.reverse()
- print(name)
- 【sort,列表排序(注意:字符串和数字不能混排):】
- name=['GroupLong-tang', 'sheng', 'freddie', 'wei']
- name.sort()
- print(name)
- name=[ , ,,,,]
- name.sort()
- print(name)
- 【copy列表:】
- name=['GroupLong-tang', 'sheng', 'freddie', 'wei',, ,,,,]
- name1=name.copy()
- name[]='TANG'
- print(name)
- print(name1)
- 【浅copy,二级列表的内容不会被重新copy:】
- name=['tang', 'sheng', 'freddie', 'wei',[, ,],,,]
- name1=name.copy()
- name[]='TANG'
- name[][]=
- name1[][]=
- print(name)
- print(name1)
- 【deepcopy,深浅copy】
- import copy
- name=['tang', 'sheng', 'freddie', 'wei',[, ,],,,]
- #浅copy,不会copy二级列表里面的元素;
- name1=name.copy()
- # name1=copy.copy(name)
- #深copy,不管有几级,都会copy过去;
- name2=copy.deepcopy(name)
- #和原文件不一样;
- name[]='TANG'
- name[][]=
- name1[][]=
- name2[][]=
- print(name)
- print(name1)
- print(name2)
- 结果:
- ['TANG', 'sheng', 'freddie', 'wei', [, , ], , , ]
- ['tang', 'sheng', 'freddie', 'wei', [, , ], , , ]
- ['tang', 'sheng', 'freddie', 'wei', [, , ], , , ]
- 【【删除一个列表中所有freddy】】
>>> name = ['freddy','aaa','ccc','freddy','ddd']- >>> for i in range(name.count('freddy')):
- ... print(name.remove('freddy'))
- ...
- None
- None
- >>> name
- ['aaa', 'ccc', 'ddd']
- >>>
- 【列表中匹配值的方法】
>>> name- ['1', '2', 'aa', 2, 8]
- >>> "aa" in name
- True
- >>> 2 in name
- True
- >>> if "aa" in name:
- ... print("aaa")
- ...
- aaa
- >>>
- 【判读列表中有没有haha这个值】
name = ['freddy','aaa','ccc','freddy','ddd']- if 'haha' not in name:
- print("name list not haha")
- 【判读“t”是不是一个列表】
>>> type(t) is list- True
元组 :
- 【元组的元素不可修改】
- 【元组元素的元素可以修改】
- count,index 【只有两个方法】
- 【统计这个元组中有几个88】
name = (22,88,33,55,33,88)
result = name.count(88)
print(result)- 【查找元组中88的第一个索引值】
name = (22,88,33,55,33,88)
result = name.index(88)
print(result)- 【判断元组中是否包含88这个数字】
name = (22,88,33,55,33,88)
result = name.__contains__(88)
print(result)
字符串操作:
name.strip() 【去除两边的空格】
name.lstrip() 【去除左边的空格】
name.rstrip() 【去除右边的空格】
【strip,脱掉空格】- username = input("user:")
- if username.strip() == 'freddy':
- print("welcome.")
- 【split,字符串拼接】
- name='tang,sheng,wei'
- name2=name.split(",")
- print(name2)
- name='tang,sheng,wei'
- name2=name.split(",")
- print("|".join(name2))
- 【判断是否有空格:】
- name="Freddy Tang"
- print(' ' in name)
- 【format,格式化输出】
- msg="hello:{name} the is age:{age}"
- msg2=msg.format(name='freddy',age=23)
- print(msg2)
- msg="hello:{0} the is age:{1}"
- msg2=msg.format('Freddy',23)
- print(msg2)
- 【center,给字符串居中增加指定字符:】
- name='freddy tang'
- print(name.center(30,'-'))
- 【find,查找指定字符所在的下标位置,find找不到时返回“-1”;index找不到时会“报错”】
- name='freddy tang'
- print(name.find('e'))
print(name.index('3'))- 【isdigit (判断是否为数字):】
- age=input("you num:")
- if age.isdigit():
- age = int(age)
- print(age)
- else:
- print("Iivalid data type.")
- 【判读是否只是字母】
name = 'freddy123'
result = name.isalpha()
print(result)
- 【 检测是否为空】
name = 'freddy'
result = name.isspace()
print(result)- 【sialnum (判断是否为数字或字母,或数字加字母的类型):】
- name="123tang"
- print(name.isalnum())
- 【endswith && startswith (判断是否为1开始3结束)】
- name=""
- print(name.endswith(''))
- print(name.startswith(''))
- 【endswith ,在 0,4 这个范围内查找是不是以 y 结尾】
- 【查找范围规则:大于等于0 and 小于3】
- name = 'freddy'
- result = name.endswith('y',0,4)
- print(result)
- 【upper && lower (字符,大小写转换)】
name="tang123"
name2="FREDDY"
print(name.upper())
print(name.lower())
- 【capitalize,把首字母转换成大写】
- name = 'freddy hahahahah'
- result = name.capitalize()
- print(result)
- 【casefold,把首字母的大写转换成小写】
- name= 'Freddy'
- result = name.casefold()
- print(result)
- 【count,查找d出现的次数】
- name = 'freddy'
- result = name.count('d')
- print(result)
- 【count,在0~4范围内,查找d出现的次数】
- name = 'freddy'
- result = name.count('d',0,4)
- print(result)
- 【encode,把“唐胜伟”转换成gbk编码】
- name = '唐胜伟'
- result = name.encode('gbk')
- print(result)
- 【partition,以“is”为标志位,把字符串分割】
name = 'freddyissb'
result = name.partition('is')
print(result)
- 【把s替换成8; "3":指定你想替换几个,并不是替换的范围】
name = 'freddyissb'
result = name.replace('s','8')
#result = name.replace('s','8',3)
print(result)
- 【去掉换行符,以列表形式打印出来】
name = '''
aa
bb
cc
'''
result = name.splitlines()
print(result)- 【strip:指定去掉的字符,和splitlines功能相同;split:去掉分割符并进行拼接】
name = '''
aa
bb
cc
'''
result = name.split("\n")
print(result)
字典操作之-增删改查:
- id_db = {
- 123 : {
- 'name':'freddy',
- 'age':'',
- 'addr':'TangShan'
- },
- 789 : {
- 'name':'freddie',
- 'age':'',
- 'addr':'TangShan'
- },
- 456 : {
- 'name':'tang',
- 'age':'',
- 'addr':'TangShan'
- },
- }
- 【取字典id_db中,key为123的值:】
- print(id_db[123])
- 【给字典中key为123,name值改成‘WeiGe’:】
- id_db[123]['name']='WeiGe'
- print(id_db[123])
- 【给字典id_db中,key为123中,增加一对值:】
- id_db[123]['QQ']=88888888
- print(id_db[123])
- 【pop,删除字典id_db中,key为123中,addr的值:】
- id_db[123].pop('addr')
- print(id_db[123])
- 【删除字典中id_db中key为456的key:】
- del id_db[456]
- print(id_db)
- 【get,取字典id_db中,key为1234的key,使用get取值,娶不到不会报错:】
- v = id_db.get(1234)
- print(v)
- 结果:
- None
- 【清空字典】
dic={'k1':'v1','k2':'v2'}
dic.clear()
print(dic)- 【浅copy字典】
food = {'1':'apple','2':'banana'}
newfood = food.copy()
print(newfood)
字典操作之-字典合并:
- dic_1 = {
- '130282':{
- 'name':'freddy',
- 'age':23,
- 'addr':'TangShan',
- }
- }
- dic_2 = {
- 'name':'WeiGe',
- '130':{
- 'name':'freddie',
- 'age':888,
- 'addr':'BeiJing'
- },
- }
- print(dic_1)
- print(dic_2)
- dic_1.update(dic_2)
- print(dic_1)
字典操作之取值:
- 【items,把字典转换成列表,数据多的时候千万别这么干:】
dic_1 = {- 130282 :{
- 'name':'freddy',
- 'age':23,
- 'addr':'TangShan',
- }
- }
- print(dic_1)
- print(dic_1.items())
- print(type(dic_1.items()))
- 结果:
{130282: {'age': 23, 'name': 'freddy', 'addr': 'TangShan'}}
dict_items([(130282, {'age': 23, 'name': 'freddy', 'addr': 'TangShan'})])
<class 'dict_items'>- 【keys,取dic_1中的key:】
print(dic_1.keys())
结果:
dict_keys([130282])- 【values,取字典中所有的value:】
print(dic_1.values())
结果:
{'name': 'freddy', 'age': 23, 'addr': 'TangShan'}- 【setdefault,取130282123这个key,要是没有130282123Key,则把130282123设置为字典的Key,value为None:】
print(dic_1.setdefault(130282123))- 【setdefault,取130282123这个key,要是没有130282123Key,则把130282123设置为字典的Key,value为Tangshengwei:】
dic_1.setdefault(130282123,"Tangshengwei")
print(dic_1)- 【fromkeys,给dic_1字典重新做赋值操作:】
print(dic_1.fromkeys([1,2,3,4,5],'aaa'))
结果:
{1: 'aaa', 2: 'aaa', 3: 'aaa', 4: 'aaa', 5: 'aaa'}- 字典:
- dic_1 = {
130282 :{
'name':'freddy',
'age':23,
'addr':'TangShan',
},
12345 :{
'name':'fr333eddy',
'age':33,
'addr':'3333',
}
}- 【popitem,字典popitem()方法作用是:随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高:】
dic_1.popitem()
print(dic_1)
- 【取字典的key,value:】
(方法一:效)
for k,v in dic_1.items():
print(k,v)
- (方法二,效率高:)
for key in dic_1:
print(key,dic_1[key])
set集合:
- 【add,给set集合添加一个元素】
- s = set()
- s.add('freddy')
- print(s)
- 【difference,打印出S1中有,S2中没有的元素】
- s1 = {11,22,33}
- s2 = {22,33,44}
- s3=s1.difference(s2)
- print(s3)
- 【symmetric_difference,对称差集,
- 把S1中存在,S2中不存在的元素取出来,
- 并且把S2中存在,S1中不存在的元素取出来】
- s1 = {11,22,33}
- s2 = {22,33,44}
- s3 = s1.symmetric_difference(s2)
- print(s3)
- ==update类型方法,主要应用在其他元素不会再使用的情况下,节省内存空间==
- 【difference_update,把S1中存在,S2中不存在的元素取出来,并重新赋值给S1】
- s1 = {11,22,33}
- s2 = {22,33,44}
- s1.difference_update(s2)
- print(s1)
- 【symmetric_difference_update,把S1中存在,S2中不存在;S2中存在,S1中不存在的值取出来,重新赋值给S1】
- s1 = {11,22,33}
- s2 = {22,33,44}
- s1.symmetric_difference_update(s2)
- print(s1)
- 【discard,移除指定元素,如果指定的移除元素不存在,不会报错】
- s1 = {11,22,33}
- s2 = {22,33,44}
- s1.discard(22)
- print(s1)
- 【remove,移除指定元素,如果指定的移除元素不存在,会报错】
- s1 = {11,22,33}
- s2 = {22,33,44}
- s1.remove(22)
- print(s1)
- 【pop,随机删除S1列表中的一个元素,不能指定移除的元素】
- s1 = {11,22,33}
- res = s1.pop()
- print(res)
- 【intersection,取交集,把S1和S2相同的值取出来】
- s1 = {11,22,33}
- s2 = {22,33,44}
- s3 = s1.intersection(s2)
- print(s3)
- 【intersection_update,取交集,把S1和S2相同的值取出来,并重新赋值给S1】
- s1 = {11,22,33}
- s2 = {22,33,44}
- s1.intersection_update(s2)
- print(s1)
- 【isdisjoint,判断S1和S2有没有交集,没有交集为True,有交集为False】
- s1 = {11,22,33}
- s2 = {44}
- res = s1.isdisjoint(s2)
- print(res)
- 【issubset,判断S1是否为S2的父序列,是为True,不是为False】
- s1 = {11,22,33}
- s2 = {22,33}
- res = s2.issubset(s1)
- print(res)
- 【union,取并集,把S1和S2合并,并且把一样的元素去重】
- s1 = {11,22,33}
- s2 = {22,33,44}
- res = s1.union(s2)
- print(res)
- 【update,给set集合增加元素,被增加的值可以为,列表,元组,字符串;update内部实现就是add】
- s1 = {11,22,33}
- s2 = {11,22,33}
- s3 = {11,22,33}
- #列表
- li=[1,2,3,4,5]
- #元组
- tu=(1,2,3,4,5)
- #字符串
- name='freddyfreddy'
- s1.update(li)
- s2.update(tu)
- s3.update(name)
- print(s1)
- print(s2)
- print(s3)
- 【set小练习,例子:服务器增加,减少内存】
old_dict = {
"#1":8,
"#2":4,
"#4":2,
}- new_dict = {
"#1":4,
"#2":4,
"#3":2,
}
new_set = set(old_dict.keys())
old_set = set(new_dict.keys())
print(new_set)
print(old_set)
remove_set = old_set.difference(new_set)
print(remove_set)
add_set = new_set.difference(old_set)
print(add_set)
update_set = old_set.intersection(new_set)
print(update_set)
python基础篇-day1的更多相关文章
- python基础篇之进阶
python基础篇之进阶 参考博客:http://www.cnblogs.com/wupeiqi/articles/5115190.html python种类 1. cpython 使用c解释器生产 ...
- python基础篇(六)
PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...
- python基础篇(五)
PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...
- python基础篇(一)
PYTHON基础篇(一) 变量 赋值 输入,输出和导入 A:输入 B:输出 C:导入 运算符 A:算数运算符 B:比较运算符 C:赋值运算符 D:位运算符 E:逻辑运算符 F:成员运算符 G:身份运算 ...
- python基础篇(二)
PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...
- python基础篇(三)
PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...
- python基础篇(四)
PYTHON基础篇(四) 内置函数 A:基础数据相关(38) B:作用域相关(2) C:迭代器,生成器相关(3) D:反射相关(4) E:面向对象相关(9) F:其他(12) 匿名函数 A:匿名函数基 ...
- Python基础篇--输入与输出
站长资讯平台:Python基础篇--输入与输出在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和输出输出输入END在任何语言中,输入和输出都是代码最基础的开始,so,先来聊一聊输入和 ...
- python基础篇(文件操作)
Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...
随机推荐
- C#的async和await
C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: public class MyClass { public MyClass() { Displa ...
- CentOS6.5的openssl升级
CentOS6.5的openssl升级:(修复心脏漏血漏洞) [root@linux1 ~]# rpm -qi openssl|grep VersionVersion : 1.0.1e Vendor: ...
- php文件以二进制形式上传并放入到数据库中
conn.php: <?php $id=mysql_connect('localhost','root','root'); mysql_select_db("db_database12 ...
- Spring3.1 Cache注解
依赖jar包: <!-- redis --> <dependency> <groupId>org.springframework.data</groupId& ...
- Oracle11g创建表空间语句
在plsql工具中执行以下语句,可建立Oracle表空间. /*分为四步 *//*第1步:创建临时表空间 */create temporary tablespace yuhang_temp temp ...
- emacs tutorial笔记
emacs tutorial笔记---基本控制 C-字母 表示一起按下Ctrl和字母/ 表示“或者”的意思 C - ctrlM - alt C-p C-b C-f C-n C-l 当前行放中央 ...
- Mesa10.2在Win7上的编译
Mesa10仍然支持Windwos/linux,但是编译方式已经不提供makefile或者workspace Building on windows requires several open-sou ...
- PHP 开发 APP 接口 学习笔记与总结 - 静态缓存
存储静态缓存即把缓存写入文件. file.php <?php class Cache{ //静态缓存文件后缀名 const EXT = 'txt'; //定义缓存文件存放路径 private $ ...
- wordpress为dashboard添加样式
function my_admin_theme_style() { wp_enqueue_style('my-admin-style', get_template_directory_uri() . ...
- Rochester Memory Hardware Error Research Project
http://www.cs.rochester.edu/research/os/memerror/