• 0.Python概述
  • 1.First Word Game
  • 2.变量与字符串
  • 3.improved game
  • 4.Python数据类型
  • 5.常用操作符
  • 6.分支与循环
  • 7.列表
  • 8.元组
  • 9.字符串内置方法 (密码安全性检查脚本)
  • 相关快捷键

零、Python概述

java代码的1/5

脚本语言(源代码编译器由C语言写成)

追求完美的语言

云计算

一、First Word Game

1.缩进表示层次//类比括号

2.BIF = Built-in functions // 内置函数,脚本语言

	>>>dir(__builtins__)   // 双下划线,查询Python内置函数
>>>help(BIF名称) // 用于查询具体功能,类比MSDN

二、变量与字符串

1.Python没有“变量”,只有“名字”,把名字贴在值的上边

2.名称区分大小写,确保使用英文标点

3.字符串

	>>> 5+8
>>> 13
>>> '5' + '8'
>>> '58'

4.原始字符串——反斜杠与转义字符

>>> str = 'C:\now'
>>> str
'C:\now'
>>> print(str) //默认识别\n为回车
C:
ow
>>>

解决方法:

	>>> str = r'C:\now'
>>> print (str)
C:\now
>>> str
'C:\\now'
>>>

5.长字符串

使用三引号'''text'''

6.And 不同于 C语言

>>> 3 and 6
6
>>> 6 and 3
3
>>>

7.支持中文作变量名——>UTF-8编码

三、improved game

	import random #导入模块
secret = random.randint(1,10)
times =3
print('-----------------------------------')
guess = 0
print ("不妨猜一下",end = "")
#print()默认在打印完字符串后自动添加一个换行符,end=“ ”参数表示用空格代替换行
while(guess != secret) and (times >0):
temp = input() #input 返回值始终是字符串 if temp.isdigit(): #所有字符都是数字,为真返回true
guess = int(temp) #变量使用之前必须进行赋值 if guess == secret:
print("Bingo!")
print("哼,猜中了也没有奖励!")
else:
if guess > secret:
print("too big")
else:
print("too small")
if times > 0:
print ("One more try!",end = " ")
else:
print ("机会用完啦")
else:
print("抱歉,输入有误,请重新输入")
times = times - 1
print("游戏结束,不玩啦^_^")

四、闲聊之Python 数据类型

  • 概述:整型 布尔类型 浮点型 科学计数法(e记法)

1.强制转换

int(5.99) == 5 #截断处理

str(520) == '520'

2.获得关于数据类型的信息

>>> v1 = '520'

>>> type(v1)	#类型名称
<class 'str'>
>>> isinstance(v1,int)
False

五、常用操作符

5.1除法

Python3 已采用真实值除法,若想用floor需用双斜杠//

	10 / 4 == 2.5
10 //4 == 2

5.2 幂运算 **

需注意优先级问题

>>> -3 ** 2
-9
>>> 3 ** -2
0.1111111111111111
>>>

六、分支和循环 ——>打飞机小游戏

6.1 C语言之悬挂匹配

if()
if ()
printf();
else //就近匹配,与缩进量不符——>C语言括号习惯
printf();

6.2 断言assert

条件为假时抛出AssertionError的异常

>>> assert 3>5

确保某个条件一定为真

6.3 if-elif-else 判断语句

6.4 成员资格运算符

>>> name = "plane"
>>> 'p' in name
True

6.5 for 循环

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

语法:

for循环的语法格式如下:

for iterating_var in sequence:

statements(s)

fruits = ['banana', 'apple',  'watermelon']
for each in fruits: #each为循环变量,类比i
print(each,len(fruits)) banana 3
apple 3
watermelon 3

6.6 range()

语法:range( [start,]stop[,step = 1(default)])

作用:生成一个从start到stop(不含)的数字序列,默认step = 1

>>> for i in range(2,5):
print(i) 2
3
4

七、列表:一个打了激素的数组

7.1 创建列表

number = [1,2,3,4,5] #普通列表
mix =[1,"v1",[1,2,3]]#混合列表
empty = [] #空列表

7.2 修改列表方法

member.append('apple') 		#追加单参数
member.extend(['A','B']) #用拓展列表的方法追加多个元素
member.insert(0,'Pudding') #有序插入,从0开始 >>> member = ['Louis']
>>> member.append('apple')
>>> member
['Louis', 'apple']
>>> member.extend(['A','B']
)
>>> member
['Louis', 'apple', 'A', 'B']
>>> member.append(['C','D']) #区分append & extend
>>> member
['Louis', 'apple', 'A', 'B', ['C', 'D']]
>>>

7.3 列表元素

# 1.获取列表元素
>>> member[1]
'apple'
# 2.删除元素
member.remove('A') #无需关心位置
del member[3]
del member #删除整个列表 # 3.弹栈操作
>>> member.pop()
'B'
>>> member
['Louis', 'apple', 'A']
>>> >>>member.pop(index) #索引号pop # 4.列表分片 ————一次性获取多个元素 #语法:listname[start:end:step] ['Louis', 'apple', 'A']
>>> member[1:3] #3-1 == 2 ,两个元素
['apple', 'A']
>>> member2 = member[:] #获得列表的拷贝(不修改原列表)
>>> member2
['Louis', 'apple', 'A'] P.S.list1 = list2 #此时list1 ,list2 指向同一内存区域

7.4 列表操作符

  • 比较操作符:只比较第一个元素
>>> list1 = [1,2,3]
>>> list2 = [2,1,3]
>>> list1 < list2
True
>>>

7.5 列表的内置函数(BIF)

dir(list) #动手并应用

1.索引查找

list2.index('123',3,7) #查找索引号3~7之间的元素,返回'123'第一次出现的索引

2.Reverse 逆序列表

3.sort() 排序

sort方法还有两个可选参数:key和reverse

  • key在使用时必须提供一个排序过程总调用的函数:
x = ['mmm', 'mm', 'mm', 'm' ]
x.sort(key = len)
print x # ['m', 'mm', 'mm', 'mmm']
  • reverse实现降序排序,需要提供一个布尔值:
y = [3, 2, 8 ,0 , 1]
y.sort(reverse = True)
print y #[8, 3, 2, 1, 0]

八、元组:带上了枷锁的列表 tuple

元组和列表的区别

——元组不可被轻易修改,只能通过新建来间接修改,消耗了资源

——不止小括号和中括号的区别,逗号才是关键!

8.1 创建和访问一个元组

>>> temp1 = (1)
>>> type(temp1)
<class 'int'>
>>> temp = []
>>> type(temp)
<class 'list'>
>>> temp = ()
>>> type(temp)
<class 'tuple'> >>> temp = 2,3,4
>>> type(temp)
<class 'tuple'> >>> temp = 1,
>>> type(temp)
<class 'tuple'>

8.2 更新和删除元组

切片方法
>>> v1 = ('A','B','C','D')
>>> v1 = v1[:2] + ('插入的字符串',) + v1[2:]
>>> v1
('A', 'B', '插入的字符串', 'C', 'D')

P.S. 回收机制:无标签指向时自动回收

8.3 元组相关的BIF

count()

index()

8.4 python引入了负数索引

九、字符串:各种奇葩的内置方法

  • 概述

    内置方法 注释
    capitalize() 把字符串的首字符改成大写
    casefold() 把字符串的所有字符改成小写
    center(width) 把字符串居中,并使用空格填充至长度width的新字符串
    count(sub[,start,end]) 返回sub在字符串中出现的次数,start和end参数可选
    encode(encoding)='utf-8',error='strict' 以encoding指定的编码格式对字符串进行编码
    endwith(sub[,start,end]) 检查是否以sub字符串结尾
    expandtabs([tabsize]=8) 把字符串中的tab(\t)转化为tabsize个空格(部分覆盖)
    find(sub[,start,end]) 存在则返回索引值,否则返回-1
    index(sub[,start,end]) 存在则返回索引值,否则产生异常ValueError
    join(sub) 以字符串作为分隔符,逐个插入到sub中所有的字符之间
    rfind(sub[,start,end]) 从字符串右边开始查找,效率有别(逆向思维)
    split([sep=None,maxsplit = -1]) 不带参数默认以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分隔maxsplit个字符串,返回切片后子字符串拼接的列表 (例如找到空格就切分)
    strip(['string']) 删除指定字符,default:space
    translate(table) 根据table的规则(可以由str.maketrans('a','b')定制)转换字符串中的字符

9.1 本质:返回新字符串,原字符串空间仍存在(类比Java GC机制)

9.2 内置方法示例

//join
>>> str2
'xiaoxie'
>>> str2.join('123')
'1xiaoxie2xiaoxie3' //split
>>> str1 = 'i love life'
>>> str1.split()
['i', 'love', 'life']
>>> str1.split('i')
['', ' love l', 'fe'] >>> str7 ='sssaaasss'
>>> str7.translate(str.maketrans('s','b'))
'bbbaaabbb'
>>> str.maketrans('s','b')
{115: 98} //字典映射

9.3 python三引号 区别

python 三引号的形式用来输入多行文本,也就是说在三引号之间输入的内容将被原样保留,之中的单号和双引号不用转义,其中的不可见字符比如/n和/t都会被保留,这样的好处是你可以替换一些多行的文本

9.4 密码安全性检查脚本

# 密码安全性检查代码
#
# 低级密码要求:
# 1. 密码由单纯的数字或字母组成
# 2. 密码长度小于等于8位
#
# 中级密码要求:
# 1. 密码必须由数字、字母或特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合
# 2. 密码长度不能低于8位
#
# 高级密码要求:
# 1. 密码必须由数字、字母及特殊字符(仅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三种组合
# 2. 密码只能由字母开头
# 3. 密码长度不能低于16位 symbol = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>''' #三引号,原样保留\t等转义字符
string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
number = '0123456789' passwd = input('请输入需要检查的密码组合:') # 判断长度
length = len(passwd) while (passwd.isspace() or length == 0) :
passwd = input("您输入的密码为空(或空格),请重新输入:")
length = len(passwd) if length <= 8:
flag_level = 1
elif 8 < length < 16:
flag_level = 2
else:
flag_level = 3 flag_con = 0 # 判断是否包含特殊字符
for each in passwd:
if each in symbol:
flag_con += 1
break # 判断是否包含字母
for each in passwd:
if each in string:
flag_con += 1
break # 判断是否包含数字
for each in passwd:
if each in number:
flag_con += 1
break # 打印结果
while 1 :
print("您的密码安全级别评定为:", end='')
if flag_level == 1 or flag_con == 1 :
print("低")
elif flag_level == 2 or flag_con == 2 :
print("中")
else :
print("高")
print("请继续保持")
break print("请按以下方式提升您的密码安全级别:\n\
\t1. 密码由数字、字母及特殊字符三种组合\n\
\t2. 密码长度不能低于16位")
break

P.S.快捷键

1.回到上一条语句 alt+n ctrl+p

2.智能输入提示 tab

【Python】Python3基本语法入门学习的更多相关文章

  1. Python3零基础入门学习视频+源码+课件+习题-小甲鱼

    目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...

  2. Python之路,入门学习(一)

    一.变量\字符编码 声明变量 #_*_coding:utf-8_*_ name = "Alex Li" 上述代码声明了一个变量,变量名为: name,变量name的值为:" ...

  3. 6.Jenkins进阶之流水线pipeline语法入门学习(1)

    目录一览: 0x00 前言简述 Pipeline 介绍 Pipeline 基础知识 Pipeline 扩展共享库 BlueOcean 介绍 0x01 Pipeline Syntax (0) Groov ...

  4. sh语法入门学习

    玩linux都知道sh脚本的方便,但如何编写sh脚本却是像我这样的新手和菜鸟的难题.能不能编写得出来是一回事,了不了解又是另一回事.抱着好好学习,天天向上的精神,大家有空就看看吧,没有坏处的.下面来抄 ...

  5. 7.Jenkins进阶之流水线pipeline语法入门学习(2)

    目录一览: (2) Declarative Pipeline Syntax 2.1) Sections - 章节 2.2) Directives - 指令 2.3) Sequential Stages ...

  6. VHDL语法入门学习第一篇

    1. 现在先遇到一个VHDL的语法问题,以前没用过VHDL,现在要去研究下,进程(PROCESS) 进程内部经常使用IF,WAIT,CASE或LOOP语句.PROCESS具有敏感信号列表(sensit ...

  7. Python记录-基础语法入门

    # -*- coding: utf-8 -*- #数字计算 a=1 b=2 print(a+b) print(a*b) print((a+b)/1) #浮点数 print((a+b)//2) ##保留 ...

  8. 《零基础入门学习Python》【第一版】视频课后答案第001讲

    测试题答案: 0. Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也能让开发者藉以编写出让电脑听命行事的程序.以简单的方 ...

  9. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

随机推荐

  1. 2018牛客多校1 - J Different Integers 莫队/主席树签到

    题意:给出n<5e4,a[1...n],单次1e5总次1e6次查询除去区间(L,R)的数的个数 开场5分钟:莫队是不可能莫队的,这道题是不可能莫队的 最后1小时:真香 具体操作没啥特别的,注意一 ...

  2. BASIC CONCEPTS ABOUT 4G

    http://en.wikipedia.org/ 原版的维基,远比我认识的强大 http://www.3gpp.org/ http://www.ietf.org/ http://www.wiresha ...

  3. Jenkins添加maven插件

    1.1.1 安装Maven插件 我们要使用Jenkins+Maven对Java项目进行构建,需要安装Maven Project Plugin,具体安装过程请参考插件管理部分 1.1.2 3.Linux ...

  4. java实现图片文字识别的两种方法

    一.使用tesseract-ocr 1.    https://github.com/tesseract-ocr/tesseract/wiki上下载安装包安装和简体中文训练文件 window64位安装 ...

  5. npm run build报错 ,resolve is not defined

    今天在build项目的时候报: ReferenceError: resolve is not defined npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ...

  6. 理解ReentrantLock的公平锁和非公平锁

    学习AQS的时候,了解到AQS依赖于内部的FIFO同步队列来完成同步状态的管理,当前线程获取同步状态失败时,同步器会将当前线程以及等待状态等信息构造成一个Node对象并将其加入到同步队列,同时会阻塞当 ...

  7. 其它浏览器上是可以正常请求的,ie浏览器上确出现奇怪的http请求400错误

    做项目的时候,遇到一个小的问题.一个location.href="请求的url"在其它浏览器上是可以正常请求的.但是在ie浏览器上确出现奇怪的http请求400错误,我们先来对于h ...

  8. LinuxShell脚本基础 6-case...esac的使用和通配符

    1.case...esac的使用 #!/bin/bash echo "请输入编号 选择不同的显示文件和目录方式:" echo "1 - 普通显示" echo & ...

  9. 取消文件与svn服务器的关联

    在使用svn项目管理工具的时候,经常遇到这样的情况: 我从svn下载下来了一个版本,后面不在需要和svn进行同步版本管理,但是文件夹的上面总是有一个勾,显示同步状态,强迫症真的受不了. 效果见小图: ...

  10. 【ExtJS】FormPanel 布局(二)

    周末2天好好学习了下布局,现在都给实现了吧. 5.border布局: Border布局将容器分为五个区域:north.south.east.west和center.除了center区域外,其他区域都需 ...