2019-04-21 python第一次

安装环境配置

  • 安装ubantu(虚拟机)——略
  • 安装python3.7环境 官方地址:www.python.org

安装开发工具

我们选择功能强大的pycharm和能够支持交互式编程的Jupyter

  • 设置python文件和代码模板
    settin-> editoer ->fole and code templates 选择第四个 python files
# @Time    : ${DATE} ${TIME}
# @Author  : (你的名字)
# @Email   : (你的邮箱)
# @File    : ${NAME}.py
# @Software: ${PRODUCT_NAME}

然后再新建python file 就会神奇地发现


自带时间戳和作者信息的脚本

(进入正题)

交换变量

1.常规操作,需要借助第三方变量
temp=b
b=a
a=temp
2.python一句话搞定
a,b=b,a
print('a的值是',a,'b的值:',b)

变量以及类型

1.标识符命名规范

  • c语言、c++ 标识符由下划线、字母、 数字组成,且首字母不能是数字 java 后来增加了$符号
  • c、c++、python 标识符要区分大小写 (html不区分)
  • 驼峰命名法 userName
    下划线命名法 user_name
  • 标识符不能是关键字

2.关键字

 import keyword
 keyword.kwlist
>>>
['False', 'None', 'True', 'and', 'as', 'assert', 'async',
 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 
'else', 'except', 'finally', 'for', 'from','global', 'if',
'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass',
 'raise', 'return', 'try', 'while', 'with', 'yield']

3.变量类型

python变量类型
  • type()函数查看变量类型
# 一个参数实例
>>> type(1)
<type 'int'>
>>> type('runoob')
<type 'str'>
>>> type([2])
<type 'list'>
>>> type({0:'zero'})
<type 'dict'>
>>> x = 1          
>>> type( x ) == int    # 判断类型是否相等
True
  • 拓展:isinstance()type()区别:

type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。

class A:
    pass
 
class B(A):
    pass
 
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

格式化输出

hero_name='鲁班七号'
level=75
#print('您选择的英雄是%s 当前等级是%d'%(hero_name,level))
print('您选择的英雄是{hero_name}\n当前的等级是{level}'.format(hero_name = hero_name,level = level))
>>>
您选择的英雄是鲁班七号
当前的等级是75

运算符


神奇地发现浮点数取余运算没有报错,这是python的一种兼容机制

输入输出操作

1.多变量赋值(python特有)

>>>name,age,sex='xzy',18,'male'
>>>print(name,age,sex)
xzy,18,male

2.类型转换

>>> name=input('请输入名字:')
请输入名字:xzy
>>> print(type(name))
<class 'str'>

>>> name=int(name)    #无法将字符串转化为interesting型,会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'xzy'
eval()函数
  • 用来执行一个字符串表达式,并返回表达式的值。
  • eval(expression[, globals[, locals]])
    参数
    expression -- 表达式。
    globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
    locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85

循环

一、while循环

while 条件:
(Tab)条件满足时执行的事

1.循环输出

while True:
   print("老婆我错了")    
>>>
无限次道歉 直到内存暴满卡死 

i=0
while i<10:
#顺便复习一下格式输出
    print('老婆我错了,这是我第%d次向您道歉'%i)
    print('老婆我错了,这是我第{}次向您道歉'.format(i))
    i+=1
>>>
老婆我错了,这是我第1次向您道歉
老婆我错了,这是我第2次向您道歉
···
老婆我错了,这是我第10次向您道歉

2.计算 1~100 之间偶数的累加和

i=1
sum=0
while i <=100:
    if i%2==0:
        sum+=i
    i+=1
print(sum)
>>>
2550

循环的嵌套

1.输出金字塔

i=1
while i<=5:
    j=1
    while j<=i:
        print("*",end='')
        j+=1
    print('\n')
    i +=1
>>>
*
**
***
****
*****

2.打印九九乘法表

i=1
while i<=9:
    j=1
    while j<=i:
        print(j,'*',i,'=',j*i,' ',end='')
        j+=1
    print('\n')
    i+=1
>>>
1 * 1 = 1  
1 * 2 = 2  2 * 2 = 4  
1 * 3 = 3  2 * 3 = 6  3 * 3 = 9  
1 * 4 = 4  2 * 4 = 8  3 * 4 = 12  4 * 4 = 16  
1 * 5 = 5  2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  
1 * 6 = 6  2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  
1 * 7 = 7  2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  
1 * 8 = 8  2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  
1 * 9 = 9  2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81  

条件结构——猜拳游戏

核心代码:

player=input("请输入: 剪刀(0)、石头(1)、步(2)")
player=int(player)  #将用户输入的字符串转换成整型数字

#为电脑生成[0,2]的随机整数
import random     #random函数不是python的内置函数,需要安装random包
computer=random.randint(0,2)   #生成[0,2] 左闭右闭区间

#玩家获胜
if((player==0 and computer==2)or(player==1 and computer==0)or(player==2 and computer==1)):
    print("恭喜您获胜了!")

#玩家平局
elif(player==computer):
    print("是平局,要不要再来一局?")

#玩家输
else:
    print("你输了,别走,洗洗手决战到天亮!")

代码改进:

while(True):                         
    player = input("\n请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏")
    if(player=='d'):
        break                      #多次循环游戏,按d退出程序
    else:
        player = int(player)  

        import random 
        computer = random.randint(0, 2)  # 生成[0,2] 左闭右闭区间

        # 玩家获胜
        if ((player == 0 and computer == 2) or (player == 1 and computer == 0) or (player == 2 and computer == 1)):
            print("恭喜您获胜了!")

        # 玩家平局
        elif (player == computer):
            print("是平局,要不要再来一局?")

        # 玩家输
        elif((player==0 and computer==1)or(player==1 and computer==2)or(player==2 and computer==0)):
            print("你输了,别走,洗洗手决战到天亮!")
        else:                           
            print("输入错误,请重新输入") 
            continue    #防止用户胡来,提升了代码的容错性
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? 0
你输了,别走,洗洗手决战到天亮!
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? 1
恭喜您获胜了!
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? 2
恭喜您获胜了!
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? 4
输入错误,请重新输入
请输入: 剪刀(0)、石头(1)、步(2) 输入d退出游戏>? d

break和continue

continue 结束当前循环,紧接着执行下一次循环
break结束break所在的循环

二、for循环

基本语法

for 临时变量 in 可迭代的对象:
(Tab) 满足循环时执行的事情

company='neusoft'
for x in company:
    print(x)
    if x=='s':
        print('这个s要大写')
>>>
n
e
u
s
这个s要大写
o
  • range()函数
    range(起始值,终值,步长) ->左闭右开
for i in range(1,101,2):
    print(i)
>>>
1
3
5
···
99    #range()函数左闭右开

字符串

>>>word="hello.'c'"
>>>print(word)
hello'c

访问字符串 下标

>>>print(word[1])
e
name='lisi'
print(name*3)
>>>
lisilisilisi
  • 切片 截取一部分的操作
    对象【起始:终止:步长】 左闭右开
name='abcdef'
print('1:',name[0:3],sep='')
print('2:',name[3:5],sep='')
print('3:',name[2:],sep='')
print('4:',name[1:-1],sep='')
print('5:',name[::2],sep='')
print('6:',name[5:1:-2],sep='')
>>>
1:abc
2:de
3:cdef
4:bcde
5:ace
6:fd
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容

  • 基于《Python语言程序设计基础(第2版)》 第一部分 初识Python语言 第1章 程序设计基本方法 1.1 ...
    柄志阅读 27,363评论 4 44
  • Python标识符 在 Python 里,标识符有字母、数字、下划线组成。在 Python 中,所有标识符可以包括...
    tianyi6677阅读 1,090评论 0 3
  • 在无限浩渺的高空中,一座宏大如数百万个集装箱的云朵正在缓慢的向西飘浮。 突然云朵的一侧有一个拖着尾巴的不明物体闯入...
    半夏长安阅读 404评论 9 1
  • 在车水马龙的郑州在夜色流淌下的声音里我思念着典故里的人游宫的帝子那个皇帝,终是未了心愿 昨夜雨后,天气忽暖许多这时...
    伯爵男主阅读 298评论 2 5
  • 辞职后这两个月,静下心来思考了很久,其实我 内心真实的想法是,我只是将要三十了。突然意识 到二十多岁到明年这个时候...
    渡口小生阅读 307评论 0 1