python初级学习(一)

python初级(一)

一,python的简史

1,python的发展

• 1989年,Guido(龟叔)python。

• 1990年, 发布python的第一个版本;

• 2001年发布python2.0版本;

• 2010年获年度Tiobe编程语言大奖

• 2013年发布python3.x版本;

2,python优点缺点

•简单、优雅、明确

•有强大的第三方库模块

•可跨平台移植

•一种面向对象的语言

•代码执行速度慢,相比C语言,不过现在python的异步并发框架导致执行速度慢;

•python是开源的编程语言,代码不能加密;

3,python脚本

•#!/usr/bin/python 这种写法表示直接引用系统的默认的Python 版本;

•#!/usr/bin/env python 这种写法表示,引用环境变量里面

自定义的 Python 版本, 具有较强的可移植性;

指定编码格式的方法

• #coding:utf-8

• #coding=utf-8

• #encoding:utf-8

• #encoding=utf-8

4,Pycharm

• 访问pycharm官网:http://www.jetbrains.com/pycharm/

•下载pychrm社区版本,安装使用,后面我们专门写一个章节,来描述pycharm常用的操作、设置以及快捷键。Pycharm

• 访问pycharm官网:http://www.jetbrains.com/pycharm/

•下载pychrm社区版本,安装使用,后面我们专门写一个章节,来描述pycharm常用的操作、设置以及快捷键。


二,python的数值类型

1,输入与输出

要求:输入某学生的三门课程成绩,计算出该学

生的平均成绩。

提示:(course1+course2+course3)/3


• print + 字符串...

• raw_input输入的内容为字符类型;

• input输入的内容为数值类型

2,变量

- 变量是内存中的一块区域。

- 变量的命名: 变量名由字母,数字,下划线组成。

面试题:简要描述Python的垃圾回收机制;

python中地址变量与c语言刚好相反,一条数据包含包含多个标签;

*变量名合法规则:
        1. 变量名由字母, 数字或者下划线组成;
        2. 变量名只能以字母或者下划线开头;

while True:
    s = raw_input("变量名:")

    if s[0].isalpha() or s[0] == "_":
        for i in s[1:]:
            if i.isalnum() or i == "_":
                continue
            else:
                print "%s 变量名不合法!Error: 变量名后面的字符" % (s)
                break
        else:
            print "%s变量名合法" % (s)
    else:
        print "%s 变量名不合法! Error: 变量名第一个字符" % (s)

3,运算符和表达式

算术运算符:+,-,*,**, /, %, //

赋值运算符:=, +=, -=, /=, *=, %=

关系运算符: >, >=, <, <=, !=, ==

逻辑运算符:逻辑与and, 逻辑或or, 逻辑非not

4,整型

长整形

• 强制定义为长整型: num3 = 999L

5,浮点型

• 1.2e10代表的数值为1.2的10次方;

• 12e9代表的数值为12的9次方;

6,复数类型

• python对复数提供内嵌支持,eg: 3.14j, 8.32e-36j

三,字符串类型

1,字符串的定义:

•第一种方式:

str1 = 'our company is westos'

•第二种方式:

str2 = "our company is westos"

•第三种方式:

str3 = """our company is westos"""

2,转义符号

一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符

\n: 代表换行符 \": 代表双引号本身

\t: 代表tab符 \': 代表单引号本身

3,三重引号

• 块注释:多行代码注释

• 函数的doc文档:讲函数时会说到

• 字符串格式化

4,字符串操作预览

字符串属于序列,序列支持的操作如下:

• 索引 切片
• 判断子串 重复
• 连接

计算长度

1)索引

• 索引(s[i] ):获取特定偏移的元素

• 给出一个字符串,可输出任意一个字符,如果索引为负数,就是相当于从后向前数。

索引理解
字符串hello\n
索引012345
索引-6-5-4-3-2-1

2)切片

切片S[i:j]提取对应的部分作为一个序列:

•上边界并不包含在内;

•如果没有给出切片的边界,切片的下边界默认为0,上边界为字符串的长度;

•扩展的切片S[i:j:k],其中i,j含义同上,k为递增步长;

s[:]获取从偏移量为0到末尾之间的元素,是实现有效拷贝的一种方法

3)判断子串

判断一个sub字符串是不是属于s字符串:

•sub in s
•sub not in s

4)重复、连接及计算长度

5)字符串的类型转换

str(obj) 将其他类型内容转换为字符串

int(obj) 将字符串转换为为整数

float(obj) 将字符串转换为浮点型

long(obj) 将字符串转换为长整型

6)字符串常用操作:

str.capitalize()  -将字符串首字母大写,并返回新的首字母大写后的字符串;

str.center(width[,fillchar]) -返回一个长为width的新字符串,在新字符串中原字符居中,

其他部分用fillchar指定的符号填充,未指定时通过空格填充。

str.count(sub[, start[, end]]) -> int  -返回sub在str中出现的次数,如果start与end指定,则

返回指定范围内的sub出现次数。

str.endswith(suffix[, start[, end]]) - 判断字符串是否以suffix结束,如果start和end指定,

则返回str中指定范围内str子串是否以suffix结尾,如果是,返回True;否则返回False

str.startswith(prefix[, start[, end]])

str.find(sub[,start[,end]]) - 判断sub是否在str中,存在返回索引值,不存在返回-1.

str.index(sub[,start[,end]]) - 与find方法函数功能相同,如果sub不存在时抛出ValueErro

异常;

str.isalnum() //判断是否都是字母或数字
str.isalpha() //判断是否都是字母
str.isdigit() //判断是否都是数字
str.islower() //判断是否都是小写
str.isspace() //判断是否都是英文空格
str.istitle() //判断是不是都是标题(有大小写)
str.isupper() //判断是不是都为大写字母字符串常用操作:

str.join(seq) - 以str作为分隔符,将序列seq中的所有元素合并为一个新的字符串。

str.replace(old,new[,count]) - 将str中的old字符串替换为new字符串,并将替换后的新字

符串返回,如果count指定,则只替换前count个

str.split([sep[,maxsplit]]) - 以sep字符串作为分割符对str进行切割,默认为空格; -

maxsplit代表切割的此处字符串常用操作:

str.strip([chars])  - 返回一字符串,将str中首尾包含指定的chars字符

删除的字符串,未指定时,删除首尾的空格。

四,列表list

1)列表的定义
• 定义一个空列表
list = []
• 定义一个包含元素的列表,元素可以是任意类型,包括数值类型,列表,字符串等均可。
list = ["fentiao", 4, 'gender']

list1 = ['fentiao',(4,'male')]

2)列表的索引

•下标是从0开始计算,比如list[0]读取的是列表的第1个元素;

•list[-1]读取的是列表的倒数第1个元素;

array = [1, 2, 3, 4, 5, 6, 7]
li = [1, 1.0, 1L, "hello", 1 + 3j]

3)列表的切片

• 0代表从哪个索引开始切片;
• 3代表切片到哪个位置,并且不包含第三个索引;
• 2代表切片的步长;
>>> list1
['fentiao', 5, 'male']
>>> list1[0:3:2]

['fentiao', 'male']

4)列表的添加

• 列表可通过append方法添加元素;

• 在指定位置添加元素使用inert方法;

L.insert(index, object)

5)列表的修改

• 修改列表的元素:直接重新赋值;

6)列表的查看

• 查看某个列表元素的下表用index方法;

• 查看某个列表元素出现的次数用count方法;

列表的删除

• list.remove(list[])

• del(list[])

7)

allow_ip = ['172.25.254.91', '172.25.254.2', '172.25.254.14', '172.25.254.32']

# 增
# # append追加元素到列表的最后;
# allow_ip.append('172.25.254.6')
# print allow_ip
#
#
# # insert将元素添加到指定索引的前面;
# allow_ip.insert(1,'172.25.254.34')
# print allow_ip
#
# # extend是追加多个元素到列表中;
# allow1_ip = ['172.25.254.56', '172.25.254.66']
# allow_ip.extend(allow1_ip)
# print allow_ip

# 改
# # 给列表的指定索引重新赋值;
# allow_ip[0] = '172.25.254.11'
# print allow_ip

# 查
# # 显示指定元素出现的次数;
# print allow_ip.count('172.25.254.1')
#
# # 显示指定元素的索引值;如果出现多个,显示小的那个索引;如果元素不存在,报错,ValueError;
# print allow_ip.index('172.25.254.1')

# 删
# pop是删除指定索引的值;如果列表为空或者索引不在范围内,则报错; 如果不指定索引值,默认删除最后一个元素;
# allow_ip.pop()


# 删除列表中最先出现的值,不存在,则报错;
# allow_ip.remove('172.25.254.1')
# print allow_ip





# 反转列表
# allow_ip.reverse()

# 列表排序
allow_ip.sort()

print allow_ip


五,if条件判断

C语言的if语句:
    if (表达式){

    }


Python的if语句:注意缩进
    if 表达式:
        if-suite

    if 表达式:
        if-suite
    else:

        else-suite


1)year = input('Year:')

# =是赋值, ==判断是否相等; PEP8
bool_res =  (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)


if bool_res:
    # pass是占位关键字
    # pass
    print "%s 是闰年" %(year)
else:

    print "%s 不是闰年" %(year)


2)用户登陆系统Version1:

        1). 已知用户名和密码;
        2). 判断用户名和密码是否正确;
            如果正确, 输出用户登陆成功;
            如果不正确, 输出登陆失败;
"""
import getpass

user = "root"
passwd = "redhat"

username = raw_input("用户名:")
password = getpass.getpass("密码:")
if username == user and password == passwd:
    print "%s用户登陆成功!" % (username)
    print  """
                ATM管理系统
        
        1. 取款
        2. 存款
        3. 查询余额
        4. 退出
   """
    choice = input("请输入你的选择:")
    if choice == 1:
        pass
    elif choice == 2:
        pass
    elif choice == 3:
        pass
    elif choice == 4:
        exit(0)
    else:
        print "请输入正确的选择!"
else:
    print "%s 用户登陆失败!" % (username)


3)# if, if...else, if ... elif...else....

a = 1
b = 2

# 三目运算符: a>b?a:b <注意: python中不支持>

print a if a > b else b

# if a>b:
#     print a
# else:

#     print b

六,循环语句


1)while 表达式:
    循环执行的语句


while 表达式:
    循环执行的语句
else:
    不符合循环条件执行的语句


# 死循环
while True:
    死循环的语句

while 1:
    死循环的语句
"""

import getpass

# 数据库中存储的用户名和密码;
user = "root"
passwd = "redhat"

# 已登陆的次数;
trycount = 0

# 登陆次数小于3,允许再次登陆;
while trycount < 3:
    print "%s次登陆........" %(trycount+1)
    username = raw_input("用户名:")
    password = getpass.getpass("密码:")
    if username == user and password == passwd:
        print "%s用户登陆成功!" % (username)
        print  """
                    ATM管理系统

            1. 取款
            2. 存款
            3. 查询余额
            4. 退出
       """
        while 1:
            choice = input("请输入你的选择:")
            if choice == 1:
                print "取款"
            elif choice == 2:
                print "存款"
            elif choice == 3:
                print "查询余额"
            elif choice == 4:
                exit(0)
            else:
                print "请输入正确的选择!"
    else:
        print "%s 用户登陆失败!" % (username)

    trycount += 1

# 登陆次数超过三次,报错;
else:

    print "登陆次数超过3次, waiting......


2)# print range(1,11)   # [1,11)
import time

start_time = time.time()
sum = 0
for i in range(2,1000001,2):
    sum += i
print sum

# print sum(range(2,1000001,2))


end_time = time.time()

print  "run %s" % (end_time - start_time)


3)#  break: 遇到这个关键字跳出当前循环;不再继续执行循环;

     #  continue:遇到这个关键字跳出本次循环;

while True:
    cmd = raw_input(">>>")

    if cmd == "":
        continue
        # print "cmd"
    elif cmd == "q":
        break
    else:

        print cmd

4)求偶数和

import time


start_time = time.time()
num = 2
sort = 0
while num <= 10000:
    sort += num
    num += 2
print sort
end_time = time.time()

print  "run %s" % (end_time - start_time)



基础巩固

1,E

2,E

3,E

4,4

5,D

6,CD

7,删除两边空格  向左对齐   分割字符串

8,元素追加至列表的末尾    在3 位置添加'a'    添加列表

9,urls= ['http://www.baidu.com', 'https://www.westos.org', 'file:///hello.txt',

'https://www.westos.com']

for i in urls:

    if i.startswith('https') and i.endswith('.com'):

    print i

10,True  False

11,CPython  IPython   PyPy

12,

编码大小
支持语言
ASCII
1个字节
英文
Unicode
2个字节(生僻字4个)
所有语言
UTF-8
1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节
所有语言

13,必须是文件的第一行 必须以#!开头  例如:#!/usr/bin/env python

14,0

15,python2有input和raw_input两种,input可以输入整形的数据,python3中input都为str

16,type a       b = str(a)

17,B  

18, 10    内存地址

19,list    list

20,  [True,5]



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值