Python学习第三天 2019.1.21 python基础

安装

$ tar -zxvf pycharm-edu-3.5.1.tar.gz
$ sudo mv pycharm-edu-3.5.1/ /opt/
/opt/pycharm-edu-3.5.1/bin/pycharm.sh ```

单行注释 # 多行注释 “”" “”"
PEP(Python Enhancement Proposals) PEP8: https://www.python.org/dev/peps/pep-0008/

input 函数实现键盘输入
if elif else 综合应用 —— 石头剪刀布
随机数:

import random 
random.randint(a, b)

在默认情况下,print 函数输出内容之后,会自动在内容末尾增加换行
如果不希望末尾增加换行

print("*", end="")

\t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐
\n 在控制台输出一个 换行符

pycache 的目录下会有一个 hm_10_分隔线模块.cpython-35.pyc 文件,cpython-35 表示 Python 解释器的版本
这个 pyc 文件是由 Python 解释器将 模块的源码 转换为 字节码
Python 这样保存 字节码 是作为一种启动 速度的优化

数字型

整型 (int)
浮点型(float)
布尔型(bool)
真 True 非 0 数 —— 非零即真
假 False 0
复数型 (complex)
主要用于科学计算,例如:平面场问题、波动问题、电感电容等问题

非数字型

字符串 不可变类型
列表list 有序 的对象集合 可变类型
元组tuple 元素不能修改 不可变类型
字典dictionary 无序 的对象集合 可变类型

在 Python 中,所有 非数字型变量 都支持以下特点:
都是一个 序列 sequence,也可以理解为 容器
取值 []
遍历 for in
计算长度、最大/最小值、比较、删除
链接 +

综合应用 —— 名片管理系统

在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的
问题 1:在函数内部,针对参数使用 赋值语句,会不会影响调用函数时传递的 实参变量? —— 不会!
问题 2:如果传递的参数是 可变类型,在函数内部,使用 方法 修改了数据的内容,同样会影响到外部的数据

在 python 中,列表变量调用 += 本质上是在执行列表变量的 extend 方法,不会修改变量的引用
extend和append的区别

>>> li = ['a', 'b', 'c']  
>>> li.extend(['d', 'e', 'f'])   
>>> li  
['a', 'b', 'c', 'd', 'e', 'f']  
>>> len(li)                      
6  
>>> li[-1]  
'f'  

>>> li = ['a', 'b', 'c']  
>>> li.append(['d', 'e', 'f'])   
>>> li  
['a', 'b', 'c', ['d', 'e', 'f']]  
>>> len(li)                      
4  
>>> li[-1]  
['d', 'e', 'f']  

1)append: s1 = [1,2,3] s2 = [4] s1.append(s2) s1.append({‘1’:‘2’})
print(s1) 1 2 3 4 5 输出如下

[1,2,3,[4],{‘1’:‘2’}] 1
使用append相当把整个s2当做List中的元素的内容,相当于把[s2]添加到了s1中。如果用print(s1.append(s2))输出的为None;用test
=s1.append(s2)在print(s2)得到还是None,因为append操作是在原List上的修改,不会返回一个新的值 append 操作可以向List中添加任何元素,比如字典,不过字典整体作为List中的一个元素(比如上面字典的{}) 2)+运算: s1 =
[1,2,3] s2 = [4] print(s1+s2) 1 2 3 结果如下

[1,2,3,4] 1
+运算是对于两个类型相同的变量之间的运算,不改变原有的变量,并返回一个新的值,是内容之间的拼接

3)extend: s1 = [1,2,3] s2 = [4] s1.extend(s2) print(s1) s3 = ‘abc’
s1.extend(s3)) print(s1) s4 = {‘age’:12,‘height’:180} s1.extend(s4)
print(s1) 1 2 3 4 5 6 7 8 9 10 输出如下:

[1, 2, 3, 4] [1, 2, 3, 4, ‘a’, ‘b’, ‘c’] [1, 2, 3, 4, ‘a’, ‘b’, ‘c’,
‘height’, ‘age’] 1 2 3 4 extend
也是在原有List上进行修改,没有返回值,可以扩展不同类型的变量,并将其内容以List变量的形式加入到原List中。
从输出中可见如果extend的是字符串,则字符串会被拆分成字符数组,如果extend的是字典,则字典的key会被加入到List中
--------------------- 作者:NesCafee 来源:CSDN 原文:https://blog.csdn.net/dpengwang/article/details/79102305
版权声明:本文为博主原创文章,转载请附上博文链接!

def demo(num, *args, **kwargs):
python 中有 两种 多值参数:
参数名前增加 一个 * 可以接收 元组
参数名前增加 两个 * 可以接收 字典
一般在给多值参数命名时,习惯使用以下两个名字
*args —— 存放 元组 参数, args 是 arguments 的缩写,有变量的含义
**kwargs —— 存放 字典 参数,kw 是 keyword 的缩写,kwargs 可以记忆 键值对参数

函数的递归

猜你喜欢

转载自blog.csdn.net/rosanna1029/article/details/86592417