python学习(1)

02_python基础

01_1-1走进python

Python2到3的程序2to3.py
标识符是指python语言中允许作为变量名或其他对象名称的有效符号:首字符是字母或下划线;其余可以是字母、下划线、数字;大小写敏感(PI和pi是不同的标识符)
表达式:用运算符连接各种类型数据的是式子就是表达式:算数运算符(乘方**正负号±乘除*/整除//取余%加减±),位运算符(取反~与&或|异或^左移<<右移>>),比较运算符(小于 大于 小于等于 大于等于 等于 不等于),逻辑运算符(非not 与and 或or)

#变量第一次赋值,同时获得类型和“值”:python是动态的强类型语言;不需要显示生命,根据“值”确定类型;以“引用”的方式实现赋值
#赋值——增量赋值,增量赋值操作符:+= -= *= /= %= **= <<= >>= &= ^= |=
m = 18
m *= 3
print (m)

#赋值——多重赋值
PI = pi =3.14159
print(PI)
print(pi)

#赋值——多元赋值:等号左右两边都以元组的方式出现
x = 1
y = 2
print (x,y)
x,y = y,x
print (x,y)
54
3.14159
3.14159
1 2
2 1

语句:完成一个任务,如打印一份文件
表达式:任务中的一个具体组成部分,如这份文件的具体内容

04_4-python数据类型

#Python标准数据类型:(长)整型、浮点型、复数型、布尔型、字符串、列表、元组、字典
#整型/长整型:整型和长整型并不严格区分,整型值后加“L”即为长整型,与机器有关,32位:-2的31次方~2的31次方-1,-2的63次方到2的63次方-1,在python中整型基本没有溢出的问题
#布尔型:整型的子类;仅有2个值:True、False;本质上使用整型的1、0分别存储的
x = True
print(int(x))
y = False
print (int(y))
#浮点型:即数学中的实数,可以类似科学计数法标识
a = 9.8e3
print(a)
print(3.2e-3)
#复数型 
a = 5+3j
print(a)
print(a.imag) #虚部
print(a.real) #实部
print(a.conjugate()) #共轭
type(a)
1
0
9800.0
0.0032
(5+3j)
3.0
5.0
(5-3j)
complex

#序列类型:
#字符串:单引号、双引号、三引号内的都是字符串,不可变类型
#列表:强大的类型,用方括号[]界别,可变类型
#元组:与列表相似,用小括号()界别,不可变类型

#字符串的表示
a = 'hello,world'
print (a)

b = "hello,world"#直接打双引号
print (b)

c = '''hello,
   world'''#三引号是三个单引号
print (c)
hello,world
hello,world
hello,
   world
#映射类型 字典:用大括号{}界别,类似于哈希表的键值对
d = {'a':'sin','b':3,'c':2.5}
d['a']
'sin'

05_5 python 基本运算

#比较运算:数值的比较,按值比大小;字符串的比较,按ASCII码值大小
3<4<7#same as (3<4) and (4<7)
#原始字符串操作符(r/R):用于一些不希望转移字符起作用的地方
#Unicode字符串操作符(u/U):转换成Unicode字符串
#u
print(u'hello\nworld')
print('hello\nworld')

f = open(r'D:\software\python.py','w')
f.close()
#比较运算和逻辑运算都是布尔值
hello
world
hello
world

06_6 函数模块和包

#内建函数-cmp(),str()和type()适用于所有标准类型
#数值型内建函数:abs(),bool(),oct(),coerce(),int(),hex(),divmod(),long(),ord(),pow(),float(),chr(),round(),complex()
#实用函数:dir(),input(),help(),open(),len(),range()
import math
print (math.pi)

import numpy as np
a = np.arange(1,10)
b = range(1,5)
print (a)
print (list(b))

c = input('input a number')

# 包:一个有层次的文件目录结构,定义了一个由模块和子包组成的python应用程序执行环境
#库:一组具有相关功能的模块的组合
3.141592653589793
[1 2 3 4 5 6 7 8 9]
[1, 2, 3, 4]
input a numberf

02_1-2python面面观

#01_1条件
if expression:
expr_true_suite
elif expression2:
expr2_true_suite
else:
none_of_the_above_suite

#02_2 range arange xrange
#python3中,range()变为list(range()),xrange()变为range()
异同 list(range()) range()
语法  列表         生成器
生成  真实列表     用多少生成多少


import numpy as np
a = range(1,10,2)
print (list(a))

b = range(10,1,-2)
print (list(b))

c = np.arange(1,10,2)
print(c)

d = np.arange(10,1,-2)
print(d)

print(range(1,8,3))
[1, 3, 5, 7, 9]
[10, 8, 6, 4, 2]
[1 3 5 7 9]
[10  8  6  4  2]
range(1, 8, 3)
#03_3循环
#while expression:
#    suite_to_repeat
sum = 0
i = 1
while (i < 10):
    sum += i
    i += 1
print ('sum = ',sum)
sum =  45
#for循环
# for iter_var in iterable_object:
#     suite_to_repeat
# 可以明确循环的次数:遍历一个数据集内的成员;在列表解析中使用;生成器表达式中使用
# iterable_object:string;list;tuple;dictionary
#数据量较大就用生成器表达式(后两句,用圆括号),较小就用列表解析(前6句,用方括号)
a = [i+1 for i in range(10)]
print (a)

b = [i+1 for i in list(range(10))]
print (b)

c = [i+1 for i in range(10) if i%2 == 0]
print (c)

c = (i+1 for i in range(10) if i%2 == 0)
print (c)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 3, 5, 7, 9]
<generator object <genexpr> at 0x000001F64C5ECA40>

04_4 break continue else

#break 语句终止当前循环,转而执行循环后的语句
sum = 0
i = 1
while (True):
    sum += i
    i += 1
    if (sum > 10):
        break
print('sum = %d , i = %d'%(sum,i))
sum = 15 , i = 6
#输出2到100之间的素数
#while和break
from math import sqrt

j = 2
while (j<=100):
    i = 2
    while (i <= sqrt(j)):
        if (j%i ==0):
            break
        i += 1
    if (i>sqrt(j)):
        print (j)    
    j = j+1
   
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
#for和break
from math import sqrt

for a in range(2,101):
    flag = 1
    for b in range(2,int(sqrt(a))+1):
        if (a%b == 0):
            flag = 0
            break
    if (flag == 1):
        print (a)
     
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
#continue语句
#在while和for语句中,用于:停止当前循环,重新进入循环;while循环则判断循环条件是否满足,for循环则判断迭代是否已经结束
import numpy as np

a = np.random.randint(0,300)
print (a)
c = 'y'
while ( c == 'y' ):
    b = int(input('input a number'))
    if (b == a):
        print('congrutuations')
        break
    elif (b >a):
        print('too big')
    else:
        print ('too small')
  
    c = input('do you want to try again?y/n')
    
    if (c == 'n'):
        print ('game over')
        break 
211
input a number200
too small
do you want to try again?y/ny
input a number215
too big
do you want to try again?y/ny
input a number211
congrutuations
import numpy as np

a = np.random.randint(0,300)
print (a)

while (True):
    b = int(input('input a number'))
    if (b == a):
        print('congrutuations')
        break
    elif (b >a):
        print('too big')  
    else:
        print ('too small')
    
104
input a number2
too small
input a number188
too big
input a number104
congrutuations
#循环中的else:如果循环代码从break处终止,跳出循环,正常结束循环,则执行else中的代码
k = 4
for i in range(1,10):
    if (k == 3):
        break
else:
    print(i)
print(i)   
9
9

05_5自定义函数

#函数名加上函数运算符,一对小括号:括号之间是所有可选的参数;即使没有参数,小括号也不能省略
#print 函数.__doc__ 查看函数的注释
# def function_name([arguments]):
#     "optional documentation string"
#     function_suite

from math import sqrt

def isprime(x):
    if (x == 1 or x == 0):
        return False
    i = 2
    while(i < sqrt(x)):
        if ( x%i == 0):
            return False
        i += 1
    if (i >sqrt(x)):
        return True
    
for a in range(0,101):
    if (isprime(a)):
        print (a)
    
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
#默认参数:函数的参数可以有一个默认值,如果提供有默认值,在函数定义中,默认参数以赋值语句的形式提供
#默认参数的值可以改变
#默认参数一般需要放置在参数列表的最后
#关键字参数是让调用者通过使用参数名区分参数。允许改变参数列表中的参数顺序
def f(x=True):
    "whether x is a correct word or not"
    if (x == True):
        print('x is a correct word')
#     print('OK')

a = f()
print (a)

#传递函数:函数可以像参数一样传递给另一个函数
def addmetome(x):
    return(x+x)
def self(f,y):
    return f(y)
print (self(addmetome,2.2))

#lambda 函数
r = lambda x :x+x
print(r(5))
x is a correct word
None
4.4
10

06_6递归

#递归必须要由边界条件,即停止递归的条件,典型例子:汉诺塔游戏
#递归的执行在系统资源消耗上比循环大,逐层递归调用,遇到边界体哦阿健停止递归,逐层返回调用至最初层
def fib(n):
    a,b = 0,1
    count = 1
    while count < n:
        a,b = b,a+b
        count = count +1
    print (a)
def fib(n):
    if (n == 0 or n == 1):
        return n 
    else:
        return (fib(n-1)+fib(n-2))

07_7变量作用域

#python没有变量声明,变量出现在哪里,就是什么变量:全局变量在程序的整体部分,局部变量在函数部分
#全局变量和局部变量同名时,优先使用局部变量,这是内层屏蔽外层的机制
a = 3
def f(a):
    a = 5
    print ('a')
    print (a*3)
print (f(a))
a
15
None
#需用global语句强调a是全局变量,才可以在函数中改变a的值
def f(x): 
    a = 5
    print (a)
    print (a+x)
a = 3
f(8)
5
13
def f(x):
    global a 
    print (a)
    a = 5
    print (a)
    print (a+x)
a = 3
f(8)
3
5
13
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值