python学习第一周

python第一周学习内容

第一天

1.概述

1. python 是一种解释型语言,解释型语言的最大优点是平台可移植性,最大的缺点是执行效率低下.
2. 今天计算机硬件已经足够发达的时候,我们追求的更多的是开发效率而不是程序的执行效率
3. python的[官方网站](http://python.org)下载python 的安装程序以及查看相关文档.

说明: 如果要在Linux环境下更新到Python3.x版本需要通过源代码构建安装

4. 我们可以使用Python的包管理工具pip来安装第三方模块(在DOS环境输入下列命令).
pip install ipython jupyter
或者
python -m pip install ipython jypyter
 5.  第一个python程序 - hello, world!
"""
第一个python程序
version: 0.5
Author: 吕海军
Date:2017-1-1
Modifier: 下一个修改
Date:2018-1-1
"""
#使用了python内置的print函数
print(hello, world!)
6. 如果想用交互式环境进行Python开发那么可以使用ipython或者jupyter的notebook项目
jupyter notebook
7. 如果要做团队开发以及需要使用多文件多模块协作的大型项目,我们推荐使用PyCharm的集成开发工具,我们可以从JetBrains公司的[官方网站](http://www.jetbrains.com)下载PyCharm

第二天

2.变量

变量命名在Python中,变量命名需要遵循以下规则。
硬性规则:
-变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头。
-大小写敏感(大写的a和小写的A是两个不同的变量)。
-不要跟关键字(有特殊含义的单词)和系统保留字(如函数、模块等的名字)冲突。
PEP 8要求:
-用小写字母拼写,多个单词用下划线连接。

变量是数据的载体,给变量(事实上应该是所有的标识符)命名做到见名知意也是非常重要的

#变量的类型
a = 10 #int整型
b = 10.3 #float浮点型
c = 'hello' #str字符串型
d = 1 + 5j #complex复数型
e = not a > b #bool布尔型
print(type(a))
print(type(b))
print(type(c))
print(type(d))
print(type(e))

3.运算符

x = float(input('x = '))
y = float(input('y = '))
print('%f + %f = %f' % (x, y, x + y))
print('%f - %f = %f' % (x, y, x - y))
print('%f * %f = %f' % (x, y, x * y))
print('%f / %f = %.2f' % (x, y, x / y))
#整除法(去掉余数)
print('%d // %d = %d' % (x, y, x // y))
#求模(求余数)
print('%d %% %d = %d' % (x, y, x % y))
#求幂(次方)
print('%f ** %f = %f' % (x, y, x ** y))

练习1:计算圆的周长和面积

#输入圆的半径求圆的面积和周长
from math import pi
radius = float(input('输入圆的半径'))
perimeter = 2 * pi * radius
area = pi * radius ** 2
print('圆的周长%f' % perimeter)
print('圆的面积%f' % area)

练习2:实现英制单位和公制单位的转换

#实现英制单位和公制单位的转换
a = 2.54
inch = float(input('输入英寸'))
cm = inch * a
print('%.2f英寸 = %.2f厘米' % (inch , cm))

练习3:判断一个年份是不是闰年

year = int(input('输入一个年份'))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    print('是闰年')
else:
    print('不是闰年')

第三天

4.分支结构

5.循环结构

练习1:用户身份验证

import getpass
username = input('请输入用户名: ')
#getpass.getpass可亿以让终端不显示输入内容
password = getpass.getpass('请输入密码: ')
if username == 'admin' and password == '123456':
    print('欢迎使用本系统')
else:
    print('密码或用户名错误!')

练习2:输入三条边长如果能构成三角形就计算周长和面积

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
    half = perimeter / 2
    area = math.sqrt(half * (half - a) * (half - b) * (half - c))
    print('面积: %.2f' % (area))
    print('周长:', perimeter)
else:
    print('三条边的长度不能构成三角形!')

练习3:1~100电脑随机出一个数,玩家猜

from random import randint
answer = randint(1,100)
counter = 0
game_over = False
while not game_over:
    your_answer =int(input('请输入'))
    counter += 1
    if your_answer < answer:
        print('大一点')
    elif your_answer > answer:
        print('小一点')
    else:
        print('恭喜你猜对了')
        game_over = True
if counter > 7:
    print('智商不够')

练习4:计算扣除个人所得税的实际工资

your_money = int(input('输入你的工资'))
insurance = int(input('输入五险一金'))
rate = [0.03, 0.10, 0.20, 0.25, 0.30, 0.35, 0.45, 0]
deduction = [0, 105, 555, 1005, 2755, 5505, 13050, 0]
ss = your_money - insurance - 3500
x = y = 0
if ss < 0:
    x = y = 7
    print('你不用交个税')
elif 1500 > ss > 0:
    x = y = 0
elif 4500 > ss > 1500:
    x = y = 1
elif 9000 > ss > 4500:
    x = y = 2
elif 35000 > ss > 9000:
    x = y = 3
elif 55000 > ss > 35000:
    x = y = 4
elif 80000 > ss > 55000:
    x = y = 5
else:
    x = y = 6
last_money = your_money - insurance - ss * rate[x] + deduction[y]
print('实际到手工资%.2f' % last_money)

第四天

练习1:输入三个数返回最大值

a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
if a > b:
    my_max = a
else:
    my_max = b
if my_max < c:
    my_max = c    
print(my_max)
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
my_max = a > b and a or b
my_max = c > my_max and c or my_max
print(my_max)

练习2:输入三个数,按从小到大输出

#输入三个数,按从小到大输出
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
if a > b:
    a, b = b, a
if b > c :
    b, c = c, b 
if a > b:
    a, b = b, a 
print(a, b, c)
#输入三个数,按从小到大输出
a = int(input('a = '))
b = int(input('b = '))
c = int(input('c = '))
(a, b) =  a > b and (b, a) or (a, b)
#如果 a > b 用 b 替换 a, 用a 替换 b
(b, c) =  b > c and (c, b) or (b, c)
(a, b) =  a > b and (b, a) or (a, b)
print(a, b, c) 

练习3:输出100内的素数

from math import sqrt
for num in range(2, 100):
    is_prime = True
    for factor in range(2, int(sqrt(num) + 1)):
        if num % factor == 0:
            is_prime = False
            break
    if is_prime:
        print('%d是素数' % num)

练习4:输出九九乘法表

for row in range(1, 10):
    for col in range(1, row + 1):
        print('%d*%d=%d' % (row, col, row * col), end ='\t')
    print()

练习5:打印各种三角形图形

'''
A
AB
ABC
ABCD
ABCDE

##########################
     *
    **
   ***
  ****
 *****
******
#########################
    *
   ***
  *****
 *******
*********
'''



for x in range(5):
    for col in range(65, 65 + x + 1):
        print(chr(col), end = '')
    print()
################################
for x in range(6):
    for y in range(6):
        if y < 6 - x - 1:
            print(' ', end = '')
        else:
            print('*', end = '')
    print()
#################################
row = 5
for x in range(row):
    for y in range(1, row * 2):
        if y < row - x or y > row + x:
            print(' ', end='')
        else:
            print('*', end='')
    print()
#或者
row = 5
for x in range (row):
    for y in range(row):
        if y < row - x - 1:
            print(' ', end = '')
    for _ in range(x * 2 - 1):
        print('*', end = '')
    print()

练习6:100块钱买100只鸡

"""
公鸡5元一只
母鸡3元一只
小鸡1元三只
用100元买100只鸡 问公鸡母鸡小鸡各多少只
x + y + z == 100
5 * x + 3 * y + z // 3 == 100
z % == 0

穷举法 - 穷尽所有的可能性直到找到正确答案

"""
for x in range(21):
    for y in range(34):
        z = 100 - x - y
        if x + y + z == 100 and 5 * x + 3 * y + z // 3 == 100 and z % 3 == 0:
                print(x, y, z)

练习7:输出1000以内的水仙花数

#水仙花数
for x in range(2, 1000):
    a = x // 100
    b = x % 100 // 10
    c = x % 10
    if x == a **3 + b ** 3 + c ** 3:
        print(x)

练习8:输出10000以内的完美数

from math import sqrt
for s in range (2, 10000):
    y = 1
    for x in range(2,int(sqrt(s)) + 1):
        if s % x == 0:
            y += x
            if x != s // x:
                y += s //x
    if y == s:
        print(y)

练习9:五人分鱼问题
A,B,C,D,E五个人捕鱼后已凌晨,大家便睡觉。早上A第一个醒来,将鱼均分成五份,把多余的一条鱼扔掉,拿走自己的一份,B第二个醒来,也将鱼均分为五份,把多余的一条鱼扔掉,拿走自己的一份。CDE依次醒来,也按同样的方法拿鱼,问他们合伙至少捕了几条鱼。

fish = 1
while True:
    num = fish
    fish += 1
    is_enough = True
    for _ in range(5):
        if (num - 1) % 5 == 0:
           num = (num - 1) // 5 * 4
        else:
            is_enough = False
            break
    if is_enough:
        print('至少捕了%d条鱼'% fish)
        break

练习10:Craps赌博游戏
两个骰子,第一次:玩家摇出7, 11 玩家获胜,摇出2,3,12庄家胜,其他点数继续,第二次及以后:玩家摇出7庄家胜,若与第一次相同玩家胜,其他点数继续

from random import randint
from time import time
s = 0
player1 = randint(1, 6)
player2 = randint(1, 6)
fist_point = player1 + player2
print('玩家摇出了%d点' % fist_point)
go_on = False
if fist_point == 7 or fist_point == 11:
     print('玩家胜')
elif fist_point == 2 or fist_point == 3 or fist_point == 12:
     print('庄家胜')
else:
    go_on = True
while go_on:
    s += 1
    player1 = randint(1, 6)
    player2 = randint(1, 6)
    current_point = player2 + player1
    print('玩家摇出了%d点' % current_point)
    if current_point == 7:
        print('庄家胜')
        break
    elif current_point == fist_point:
        print('玩家胜')
        break

星期五

安装调试pycharm
总结这一周所学,写这篇博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值