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. 为360极速浏览器添加搜索引擎
  2. C语言 函数的封装示例(允许存在同名但形参不同函数)
  3. POJ 3660 Cow Contest
  4. springmvc中对日期格式化的处理
  5. 解决 Azure AD 在 Azure Front Door 下登录失败的问题
  6. Docker Desktop 向大公司宣告收费,网友大呼:是时候弃用了!
  7. linux-权限设置--facl基本
  8. oracle database version,Oracle Database Version History
  9. linux mysql 视频教程_Linux视频教程基础入门到精通Shell高级编程实战/Nginx/MySQL运维视频教程下载...
  10. CVE-2019-0708高危漏洞,各家安全厂商的扫描修复方案
  11. centos 7.6安装WeADMIN ITOSS步骤
  12. 2014武汉理工计算机专业李帅,武汉理工大学信息工程学院2014考研复试名单公示...
  13. 战胜拖延症的利器—Product Backlog
  14. 《CryENGINE+Game+Programming+with+C++,+C#,+and+Lua》第七章
  15. \t\t我们一直在上演“混乱大都市”的神话传说
  16. 多核 CPU 和多个 CPU 有何区别?
  17. 蒋川最佳棋手 孙勇征最大突破
  18. 原生JS实现拖动拉开序幕特效
  19. 元宇宙:从数字孪生到数字共生
  20. 批量处理图片学习心得

热门文章

  1. 你拒绝的可能是改变自己的机会!
  2. 赋能表单数据,提升智能表单营销能力
  3. 侦壳工具Peid 0.95 使用详解与下载
  4. AS5600 桂林银行桌面虚拟化里的黑科技
  5. Linux 查看进程被杀死的详情
  6. 修改daemon.json后无法重启docker
  7. git 删除远程仓库本地分支和删除远程分支,保留本地分支或者删除本地
  8. 【vue+vue-cropper】好玩的图片裁剪插件vue-cropper,使用方法详解
  9. canvas画图(web作业)
  10. 求解:Tomcat实例化Servlet类异常?