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()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...
随机推荐
- 安装rkhunter
#!/bin/bash if [ ! -d /soft ];thenmkdir /soft fiwhich rkhunterif [ $? -eq 0 ];then echo "rkhunt ...
- virt-manage图形界面键盘错位问题
键盘错乱问题: 启动引导问题:
- Css - 渲染按钮
基本的css3按钮渲染 <style type="text/css"> background: #f7f7f7; /* for Webkit */ background ...
- 漫谈Java虚拟机(JVM)
Java 虚拟机(JVM)是可运行 Java 代码的假想计算机. 只要根据 JVM 规范描述将解释器移植到特定的计算机上,就能保证经过编译的任何 Java 代码能够在该系统上运行. 从上图中不难明白J ...
- SIP中OPTIONS方法的用法及示例
SIP中OPTIONS方法的用法及示例 用OPTIONS方法实现Keep Alive SIP keep-alive方法
- python 调用系统命令
Python执行系统命令一般的用到了四种方法, 第一种是 os.system(), 这个方法比较常用, 使用也简单, 会自动的生成一个进程,在进程完成后会自动退出, 需要注意的是 os.system ...
- 返回指定的VC
for (UIViewController *controller in self.navigationController.viewControllers) { if ([co ...
- Pull解析器学习
1, package com.service; import java.io.InputStream; import java.io.OutputStream; import java.util.Ar ...
- 使用无限生命期Session的方法
使用无限生命期Session的方法 [来源] 达内 [编辑] 达内 [时间]2013-03-28 Session储存在服务器端,根据客户端提供的SessionID来得到这个用户的文件,然后读 ...
- pureftpd安装配置[总结]
http://www.ttlsa.com/linux/how-to-install-pureftpd/ 看了这篇文章[几个小坑]总结如下: 1.最重要的一点,代码不要复制,有些符号肉眼看不出来. ./ ...