python 笔记1
- 用户输入
- 模块
- 字符串拼接
- 数据类型
- 字符串
- 循环(while)
一、 用户输入
很多情况下会有用户输入用户名密码的场景,下面将用命令模拟一个;
#!/usr/bin/env python
#_*_coding:utf-8_*_#only on python 2.x
#name = raw_input("What is your name?")
#python 3.x
name = input("What is your name?")
print("Hello " + name )
输入用户名密码,并且不显示密码,不显示密码将使用getpass模块完成,注:使用pycharm调试时无法显示预期效果;
#!/usr/bin/python
#_*_coding:utf-8_*_import getpass
#python 2.x
name = raw_input('what is your name?')
password = getpass.getpass('password: ')
print(name,password)
二、 模块
python 的强大之处在于有非常丰富的标准库和第三方模块,下面举两个比较小的例子
获取脚本传递的参数(sys);
#!/usr/bin/env python
# -*- coding: utf-8 -*-import sysprint(sys.argv)#输出
$ python test.py hello world
['test.py', 'hello', 'world'] #把执行脚本时传递的参数获取到了
执行系统命令(os);
#!/usr/bin/env python
# -*- coding: utf-8 -*-import osos.system("df -h") #调用系统命令#保存命令结果,适用于输出比较少的系统命令,这个读取是等命令执行完之后才返回执行结果的,时间比较长
cmd = os.popen('df -h').read()
print cmd
模块导入;
#一般将自己写的模块放到python2.7/dist-packages下面
例如:/usr/lib/python2.7/dist-packages
#在引用模块的时候默认第一找的是当前目录下面的模块
三、 字符串拼接
在拼接字符串时,有两种写法,一种是使用‘+’拼接,另一种是%s 占位符拼接,代码实现如下:
#!/usr/bin/python
#-*-coding:utf-8-*-#+号拼接
name = 'yark'print 'you name is ' + name#占位符
print 'you name is %s'%name
这两种方式的区别在于,使用+号相当于在内存中开辟了两段地址空间,而使用占位符则只开辟一段空间,所以在使用时尽量使用 占位符来拼接
四、数据类型
1. 数字
- int (整型)
- long(长整型)
- float(浮点型)
2. bool (布尔值)
3. 字符串
4. 列表
创建列表 name_list = ['aa','bb','cc','dd']
- 列表索引
>>> name_list = ['aa','bb','cc','dd']
>>> print name_list[0],name_list[1],name_list[2]
aa bb cc
#查找某个值在列表中的下标位置
>>> name_list.index('aa')
0
- 切片
>>> name_list = ['aa','bb','cc','dd']
#打印前两个数
>>> print name_list[0:2]
['aa', 'bb']
#打印最后一个数
>>> print name_list[-1]
dd
#步长为2,每隔一个打印一个
>>> print name_list[::2]
['aa', 'cc']>>> name_list
['aa', 'bb', 'cc', 'dd', 'ee']
#取1-4的值,1,2,3
>>> name_list[1:4]
['bb', 'cc', 'dd']
- 追加
>>> print name_list
['aa', 'bb', 'cc', 'dd']#追加使用 list.append()
>>> name_list.append('ee')
>>> print name_list
['aa', 'bb', 'cc', 'dd', 'ee']
- 插入
>>> name_list
['aa', 'bb', 'cc', 'dd', 'ee']
#在下标为2的位置插入11
>>> name_list.inster(2,'11')>>> name_list
['aa', 'bb', '11', 'cc', 'dd', 'ee']
- 删除
>>> name_list
['aa', 'bb', '11', 'cc', 'dd', 'ee']#删除内容为11,使用list.remove()
>>> name_list.remove('11')
>>> name_list
['aa', 'bb', 'cc', 'dd', 'ee']>>> name_list
['aa', 'bb', 'cc', 'dd', 'ee']
#删除2-4中间的元素
>>> del name_list[2:4]
>>> name_list
['aa', 'bb', 'ee']>>> name_list
['aa', 'bb', 'cc', 'dd']
#pop 默认删除列表最后一个元素
>>> name_list.pop()
'dd'
>>> name_list
['aa', 'bb', 'cc']
#使用pop删除下标为0的元素
>>> name_list.pop(0)
'aa'
>>> name_list
['bb', 'cc']
- 列表长度
>>> len(name_list)
3
>>> name_list
['aa', 'bb', 'ee']
- 包含(查询列表中是否包含该元素)
#判断3是否包含在name中,并且出现的次数是多少
>>> name
['aa', 'bb', 'cc', 'dd', 'ee', 11, 22, 3]
>>> if 3 in name:
... cou = name.count(3)
... print '3在name中,并且出现%s次'%cou
...
3在name中,并且出现1次
- 列表合并(将一个新的列表,合并到旧列表中)
name = ['aa','bb','a2','cc','dd','ee',11,22,33,66,99,'a2',100]
name2 = ['zz','ll',11]
print name
name.extend(name2)
print name#输出
['aa', 'bb', 'a3', 'cc', 'dd', 'ee', 11, 22, 33, 66, 99, 'a3', 100]
['aa', 'bb', 'a3', 'cc', 'dd', 'ee', 11, 22, 33, 66, 99, 'a3', 100, 'zz', 'll', 11]
- 列表copy(深浅copy)
>>> name = ['a','b','c','d','e','f',[1,2,3],'gg']
>>> name2 = name.copy()
'''浅拷贝--只拷贝列表的第一层,第二层的内存地址相同'''
#将name列表中下标为1的元素改为'bb'
>>> name[1]='bb'
>>> print(name,name2)
['a', 'bb', 'c', 'd', 'e', 'f', [1, 2, 3], 'gg']
['a', 'b', 'c', 'd', 'e', 'f',[1, 2, 3], 'gg'] #name2 中无修改#将列表中的列表值修改后,copy的name2值也修改了
>>> name[6][0]=11
>>> print(name,name2)
['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg']
['a', 'b', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg']'''深拷贝--两个列表完全独立,内存中地址都不一样'''
>>> import copy
>>> name3 = copy.deepcopy(name)
>>> print(name3)
['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg']
>>> name[6][0] = 22
>>> print(name)
['a', 'bb', 'c', 'd', 'e', 'f', [22, 2, 3], 'gg']
>>> print(name3)
['a', 'bb', 'c', 'd', 'e', 'f', [11, 2, 3], 'gg']
>>>
- 列表练习题(找出一个嵌套列表中所有9,改成99,并且删除列表中所有22)
#!/usr/bin/python3name = ['aaa', 'java', 'c', 'c++', [9, 5, 1, 298, 321, 22, 44,9], 9,235, 267, 235,9,[9,22,9]]for now in name:if type(now) == list:for i in range(now.count(9)):indexa = now.index(9)now[indexa] = 9999for i in range(now.count(22)):now.remove(22)for i in range(name.count(9)):ele_index = name.index(9)name[ele_index] = 9999for i in range(name.count(22)):name.remove(22)print(name)
5. 元组(不可改变的列表,只读列表)
#创建元组
a = (1,2,3,4,5)
6. 字典
字典格式如下:
dic = {123456:{'name': "adb",'age': 18}}
增
>>> dic[123456]['qq'] = 130194532
>>> print(dic)
{123456: {'qq': 130194532, 'age': 18, 'name': 'adb'}}
删
>>> del dic[123456]['qq']
>>> print(dic)
{123456: {'age': 18, 'name': 'adb'}}
将所有value取出来,所有的key取出来
#取出所有value
>>> print(dic.values())
dict_values([{'age': 18, 'name': 'adb'}])
#取出所有key
>>> print(dic.keys())
dict_keys([123456])
查询一个key值是否在字典内
#python 3.X
>>> print(dic)
{123456: {'age': 18, 'name': 'adb'}}
>>> 123456 in dic
True#python 2.x
>>>dic.has_key(123456)
五、字符串
1. 字符串去除空格或换行
f = 'abc \n'
f.strip('\n')
2. 分割
f = 'abc,jae,jjj'print(f.split(','))输出
['abc', 'jae', 'jjj']
3. 指定分隔符合并起来
f = 'abc,jae,jjj'
f2 = f.split(',')
print('|'.join(f2))#输出
abc|jae|jjj
4. 字符串查找
j = 'yark'
print(j.find('a'))
print(j.find('aa'))#返回值为字符串的下标,如果没有则为-1
#输出
-1
1
5. 判断字符串是否为数字
age = input('your age: ')
if age.isdigit():age = int(age)
else:print('None')#输出
your age: df
None
6、循环(while)
循环100次,但50-60之间的数据不打印
#!/usr/bin/python3count = 0while True:count += 1if count > 50 and count < 60:continueprint(count)if count == 100:print('exit')break
转载于:https://my.oschina.net/FrankXin/blog/747397
python 笔记1相关推荐
- tkinter 笔记: radiobutton 选择按钮(莫烦python笔记)
1 主体框架还是那个主体框架 window = tk.Tk() window.title('my window') window.geometry('500x500') 2 设置tkinter的文字变 ...
- tkinter 笔记:列表部件 listbox (莫烦python 笔记)
1 主体框架 主体框架部分还是 import tkinter as tkwindow = tk.Tk() #创建窗口window.title('my window') #窗口标题window.geo ...
- python笔记: 生成器
元素按照某种算法推算出来,我们在循环的过程中不断推算出后续的元素 不必创建完整的list,从而节省了大量的空间 这种一边循环一遍计算的机制,称之为生成器generator 1 列表生成器 把列表生成式 ...
- python输出字体的大小_Toby的Python笔记 | 预备知识:安装openpyxl学做电子表格
Toby的Python笔记 | 预备知识:安装openpyxl学做电子表格 Python 需要创建和读取excel表里面的数据,需要用 openpyxl 这个包,今天安装好备用. 首先,进入C命令窗口 ...
- c++ 冒泡排序_干货|python笔记1-冒泡排序
面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信可以难倒一批的同学,本篇就详细讲解如何用python进行冒泡排序. 基本原理 01概念: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻 ...
- python笔记-1(import导入、time/datetime/random/os/sys模块)
python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内 ...
- python慕课笔记_MOOC python笔记(三) 序列容器:字符串、列表、元组
Python Python开发 Python语言 MOOC python笔记(三) 序列容器:字符串.列表.元组 容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器 ...
- python笔记之Cmd模块
python笔记之Cmd模块 Cmd类型提供了一个创建命令行解析器的框架,默认情况下,它使用readline来进行交互式操作.命令行编辑和命令完成.使用cmd创建的命令行解释器循环读取输入的所有行并且 ...
- Python笔记002-列表推导式
Python笔记002-列表推导式 以下是我学习<流畅的Python>后的个人笔记,现在拿出来和大家共享,希望能帮到各位Python学习者. 首次发表于: 微信公众号:科技老丁哥,ID: ...
- Python笔记(7) 字符串
Python笔记(7) 字符串 1. String 数据类型 2. 访问和更新 3. 转义字符 4. 运算符 5. 格式化 6. 三引号 7. Unicode 字符串 8. 内建函数 1. Strin ...
最新文章
- 经典SQL自定义函数
- XamarinAndroid组件教程设置自定义子元素动画(二)
- 利用iframe与Response.Flush实现进度展示效果
- redisson用阿里云集群版redis的问题_redission 序列化问题追踪
- activiti 为什么需要采用乐观锁?
- 剑指Offer - 面试题58 - II. 左旋转字符串
- 11-散列1 电话聊天狂人
- java8(2)--- Stream API
- 射频放大电路的优化及ADS仿真
- 国内外常用计算机杀毒软件,国外杀毒软件排行榜(国内的不要)
- vue2中监听watch的写法汇总
- C++ Reflection
- 页高速缓存(page cache学习)
- 2016年终总结——学生时代的结束、北漂生活的开始
- redis开启rdb和aof后文件正确恢复
- 动画骨骼【Visual C++】游戏开发五十二 浅墨DirectX教程二十 骨骼动画来袭(一)...
- 测试基础---软件开发生命周期
- C语言%d、%c与%hhd的区别,%p与%x的区别
- 头歌-信息安全-病毒分析与防御
- pyhanlp 繁简转换之拼音转换与字符正则化
热门文章
- 计算机的芯片集成路,科学家研光开关可集成于硅芯片 用于无人驾驶汽车扫描道路所有部分...
- 解决:Webpack does not exit the program after finishing to compile
- 李开复:创业无奇迹 放弃成为下一个马化腾
- 【机器学习】特征选择与稀疏学习总结
- 安卓WebView无法显示百度地图网页版的解决办法
- java oracle 批量更新_ORACLE批量更新三种方法比较
- 数据结构之线性表——(二、链式存储结构)[c语言]
- 基于结构光的立体视觉
- VScode 本地调试和开启本地服务器
- 数据库误操作,如何恢复数据(SQL事务,或数据库还原)