2019-04-21 python第一次

安装环境配置

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

安装开发工具

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

  • pycharm下载
    下载地址:https://www.jetbrains.com/pycharm/
    选择开发工具更全的专业版,进行下载
  • pycharm破解
    Windows平台:
    1.进入路径C:\windows\system32\drivers\etc 将host文件复制出来,在底部加入一行代码
    0.0.0.0 account.jetbrains.com''
    2.在注册界面的Activation code的输入框中输入激活码
    获取激活码:http://idea.lanyus.com/
    详情参考https://blog.csdn.net/qq_39521554/article/details/80855357
  • 设置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('runoob')

>>> type([2])

>>> type({0:'zero'})

>>> 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))


>>> name=int(name)    #无法将字符串转化为interesting型,会报错
Traceback (most recent call last):
  File "", line 1, in 
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

你可能感兴趣的:(2019-04-21 python第一次)