1. 用户输入
  2. 模块
  3. 字符串拼接
  4. 数据类型
  5. 字符串
  6. 循环(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相关推荐

  1. tkinter 笔记: radiobutton 选择按钮(莫烦python笔记)

    1 主体框架还是那个主体框架 window = tk.Tk() window.title('my window') window.geometry('500x500') 2 设置tkinter的文字变 ...

  2. tkinter 笔记:列表部件 listbox (莫烦python 笔记)

    1  主体框架 主体框架部分还是 import tkinter as tkwindow = tk.Tk() #创建窗口window.title('my window') #窗口标题window.geo ...

  3. python笔记: 生成器

    元素按照某种算法推算出来,我们在循环的过程中不断推算出后续的元素 不必创建完整的list,从而节省了大量的空间 这种一边循环一遍计算的机制,称之为生成器generator 1 列表生成器 把列表生成式 ...

  4. python输出字体的大小_Toby的Python笔记 | 预备知识:安装openpyxl学做电子表格

    Toby的Python笔记 | 预备知识:安装openpyxl学做电子表格 Python 需要创建和读取excel表里面的数据,需要用 openpyxl 这个包,今天安装好备用. 首先,进入C命令窗口 ...

  5. c++ 冒泡排序_干货|python笔记1-冒泡排序

    面试的时候经常有面试官喜欢问如何进行冒泡排序?这个问题相信可以难倒一批的同学,本篇就详细讲解如何用python进行冒泡排序. 基本原理 01概念: 冒泡排序是一种交换排序,它的基本思想是:两两比较相邻 ...

  6. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内 ...

  7. python慕课笔记_MOOC python笔记(三) 序列容器:字符串、列表、元组

    Python Python开发 Python语言 MOOC python笔记(三) 序列容器:字符串.列表.元组 容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器 ...

  8. python笔记之Cmd模块

    python笔记之Cmd模块 Cmd类型提供了一个创建命令行解析器的框架,默认情况下,它使用readline来进行交互式操作.命令行编辑和命令完成.使用cmd创建的命令行解释器循环读取输入的所有行并且 ...

  9. Python笔记002-列表推导式

    Python笔记002-列表推导式 以下是我学习<流畅的Python>后的个人笔记,现在拿出来和大家共享,希望能帮到各位Python学习者. 首次发表于: 微信公众号:科技老丁哥,ID: ...

  10. Python笔记(7) 字符串

    Python笔记(7) 字符串 1. String 数据类型 2. 访问和更新 3. 转义字符 4. 运算符 5. 格式化 6. 三引号 7. Unicode 字符串 8. 内建函数 1. Strin ...

最新文章

  1. 经典SQL自定义函数
  2. XamarinAndroid组件教程设置自定义子元素动画(二)
  3. 利用iframe与Response.Flush实现进度展示效果
  4. redisson用阿里云集群版redis的问题_redission 序列化问题追踪
  5. activiti 为什么需要采用乐观锁?
  6. 剑指Offer - 面试题58 - II. 左旋转字符串
  7. 11-散列1 电话聊天狂人
  8. java8(2)--- Stream API
  9. 射频放大电路的优化及ADS仿真
  10. 国内外常用计算机杀毒软件,国外杀毒软件排行榜(国内的不要)
  11. vue2中监听watch的写法汇总
  12. C++ Reflection
  13. 页高速缓存(page cache学习)
  14. 2016年终总结——学生时代的结束、北漂生活的开始
  15. redis开启rdb和aof后文件正确恢复
  16. 动画骨骼【Visual C++】游戏开发五十二 浅墨DirectX教程二十 骨骼动画来袭(一)...
  17. 测试基础---软件开发生命周期
  18. C语言%d、%c与%hhd的区别,%p与%x的区别
  19. 头歌-信息安全-病毒分析与防御
  20. pyhanlp 繁简转换之拼音转换与字符正则化

热门文章

  1. 计算机的芯片集成路,科学家研光开关可集成于硅芯片 用于无人驾驶汽车扫描道路所有部分...
  2. 解决:Webpack does not exit the program after finishing to compile
  3. 李开复:创业无奇迹 放弃成为下一个马化腾
  4. 【机器学习】特征选择与稀疏学习总结
  5. 安卓WebView无法显示百度地图网页版的解决办法
  6. java oracle 批量更新_ORACLE批量更新三种方法比较
  7. 数据结构之线性表——(二、链式存储结构)[c语言]
  8. 基于结构光的立体视觉
  9. VScode 本地调试和开启本地服务器
  10. 数据库误操作,如何恢复数据(SQL事务,或数据库还原)