1.Python是一种解释性语言,解释性语言最大优点是平台可移植性,最大缺点是执行效率低下(编译性语言缺点是不能跨平台/系统)。
2.当计算机硬件已经足够发达的时候,我们追求更多的并不是程序的执行效率,而是程序的开发效率。
说明:如果要在Linux环境下更新到Python 3.x版本需要通过源代码构建安装。
3.Python的官方网站下载Python的安装程序以及查看相关文档。
4.使用Python的包管理工具pip来安装第三方模块。
pip install ipython jupyter
或
python -m pip install ipython jupyter
5.第一个Python程序 - hello,world
"""
第一个Python程序
Version:0.5
Author:杨凡
Date:2015-2-2
Modifier:张三
Date:2018-2-5
"""
print('hello,world')
- 如果想用交互式环境进行Python开发,那么可以使用ipython或者jupyter的notebook
jupyter notebook
- 如果团队开发以及需要使用多文件模块写作的大型项目,使用PyCharm的集成开发工具,前往JetBrains公司的官方网站 下载。
变量
1,变量的作用:变量是数据的载体,可以申请到内存储空间来存放数据,通过变量名可以对数据进行读和写操作。
2,变量的命名:三条必须遵守的规则:
- a,可以字母和符号和下划线开头,不能数字和特殊字符开头;
- b,字母大小写敏感;
- c,不要关键字和保留字冲突。
经验提示:变量命名用全小写字母,多个单词用下划线连接,见名知意。
Python官方命名规则标准PEP8中一条建议:一条代码最好不要超过79个字符,如果超过最好分两行写
3,变量的类型:int整数、float浮点数、str字符串、bool布尔
运算符
1,赋值运算符:= 、 += 、 -= 、 *= 、 /=
2,算数运算符:+ 、 - 、 * 、 / 、 // 、 %
3,关系运算符:== 、 != 、 < 、 <= 、 > 、 >=
4,逻辑运算符:and与 or或 not逻辑变反
5,身份运算符:is
# 简单的运算
a = 13
b = 3
print(a + b)
print(a - b)
print(a * b)
print(a ** b)
print(a / b)
print(a // b)
print(a % b)
# a += b等同于a = a + b
print(a += b)
print(a -= b)
print(a *= b)
print(a /= b)
# 关系运算符输出结果为True或False
# 提示:由于浮点数表示法的问题,在实际开发的过程中请不要做浮点数的 == 和 != 运算
print(a == b)
print(a != b)
注释
注释在编程中有解释说明和提醒的作用,但在跑程序时不会影响程序运行。
以#加空格开头用在单行注释;
以三个引号开头和三个引号结尾用在多行注释。
分支结构
if elif else
简单的分支结构练习:给出三个数,如果能构成三角形,则计算这个三角形的周长和面积。
# import导入一个函数
import math
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
if a + b > c and b + c > a and a + c > b:
perimeter = a + b + c
print('周长: ' + str(perimeter))
half = perimeter / 2
area = math.sqrt(half * (half - a) * (half - b) * (half - c))
print('面积: %d' % area)
else:
print('三条边的长度不能构成三角形!')
循环结构
for--知道循环次数时使用;while--不知道循环次数时使用
简单的循环练习:把2-100内的所有素数打印出来
# 分支结构和循环结构语句后面都有冒号,缩进是四个空格或者一个Table键的距离(虽然Table更方便,但官方不推荐使用)
# 在for循环下如果用不到循环中的变量时通常用下换线代替变量
# range(2, 100)表示产生一个2-99的递增的整数数列
# range(3,100,3)后面的3表示步长,即:产生一个100内3的倍数的递增数列
for num in range(2, 101):
is_prime = True
for factor in range(2, num):
if num % factor == 0:
is_prime = False
break
if is_prime:
# print('%d' % num, end=',')%d表示占位符
# end=','表示分隔符为逗号,Python中print()是默认自动换行的
print('%d' % num, end=',')
计算100内3和5的倍数的和
my_sum = 0
num = 0
while num < 101:
if num % 3 == 0 or num % 5 == 0:
my_sum = my_sum + num
num += 1
print(my_sum)
输入三个数,找出最大的一个
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
my_max = a > b and a or b
# 这个语句叫‘三元条件运算符’:条件成立取a,不成立取b
my_max = c > my_max and c or my_max
print(my_max)
# 分鱼游戏,5人捕了一群鱼,第二天一个人醒了均分了5份多了一条,把多的一条扔了拿走了自己的一份,
# 第二个人醒了把鱼均分了5份也多了一条,把多的一条扔了,拿走了自己的一份,
# 接着第三个、第四个、第五个人也是如此,问着5个人最少捕了多少条鱼?
fish = 1
while True:
total = fish
is_enough = True
for _ in range(5):
if (total - 1) % 5 == 0:
total = (total - 1) // 5 * 4
else:
is_enough = False
break
if is_enough:
print(fish)
break
fish += 1
'''
craps赌博游戏
规则:玩家掷两个骰子,每个骰子点数为1-6,如果第一次点数和为7或11,则玩家胜;如果点数和为2、3或12,则玩家输庄家胜。
若和为其他点数,则记录第一次的点数和,玩家继续掷骰子,直至点数和等于第一次掷出的点数和则玩家胜;若掷出的点数和为7则庄家胜。
'''
from random import randint
# 这里我设定的是玩家、庄家各有50000元,玩家压一注,庄家需要压玩家押金1.5倍,当其中一方输完游戏结束
person = 5000
pc = 5000
from random import randint
person = 5000
pc = 5000
num = 0
while True:
person_bet = int(input('请玩家押注:'))
face1 = randint(1, 6)
face2 = randint(1, 6)
first_point = face1 + face2
print('玩家摇出了%d点' % first_point)
go_on = False
if first_point == 7 or first_point == 11:
print('玩家胜!')
person += (person_bet * 1.5)
pc -= (person_bet * 1.5)
elif first_point == 2 or first_point == 3 or first_point == 12:
print('庄家胜!')
person -= person_bet
pc += person_bet
else:
go_on = True
while go_on:
face1 = randint(1, 6)
face2 = randint(1, 6)
current_point = face1 + face2
print('玩家摇出了%d点' % current_point)
if current_point == 7:
print('庄家胜!')
person -= person_bet
pc += person_bet
go_on = False
elif current_point == first_point:
print('玩家胜!')
person += (person_bet * 1.5)
pc -= (person_bet * 1.5)
go_on = False
num += 1
print('玩了%d次'% num)
print('玩家余额:%d' % person)
print('庄家余额:%d' % pc)
if person < person_bet:
print('你的余额不足以押注')
if pc < (person_bet * 1.5):
print('庄家余额不足以下注')
if person <= 0 or pc <= 0:
print('game_over')
break