02_Python基础
2.1 第一条编程语句
print("Hello, Python!")
print("To be, or not to be, it's a question.")
print("To be, or not to be, it's up to you.")
print("Make it!")
print("以梦为马,不负韶华!")
2.2 print()函数
作用:在控制台打印信息;
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
2.3 注释
- 单行注释
- 一个“#”
# 这是单行注释
- 多行注释
- 三单引号
- 三双引号
'''
多行注释1
'''
"""
多行注释2
"""
demo:
print("Hello, Python!") # 第一条Python程序,向Python致敬!
print("To be, or not to be, it's a question.")
print("To be, or not to be, it's up to you.")
print("Make it!")
print("以梦为马,不负韶华!")
'''
让我们开始Python之旅,
畅行在Python之途!
'''
2.3 input()函数
作用:从外部获取值
用法:括号中可以提供提示信息
返回值为字符串类型
>>> a = input()
城市学院
>>> a
'城市学院'
>>> a = input("Please Enter School Info:")
Please Enter School Info:City College
>>> a
'City College'
>>>
20190716上午
2.4 运行Python程序的三种方式
(1) 解释器环境运行
C:\Users\King>python
Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello,World")
Hello,World
>>>
(2) 脚本运行
C:\Users\King>python hello.py # 进入脚本对应的路径
或者
C:\Users\King>python d:hello.py # 进入脚本对应的路径
(3) IDE
- pycharm
- sublime
- VS Code
- Atom
集成开发环境通常整合了文本编辑器、集成的调试器等工具,支持各种源代码控制工具。
# -*- coding: utf-8 -*-
# 或者
#coding:utf-8
2.5 Python中常见的数据类型
数据的概念
计算机顾明思议就是可以做数学运算的机器,因此计算机理所当然的可以处理各种数据,但是计算机能处理的远远不止数值,还有文本,图形,音频,视频网页等各种数据, 不同数据,需要定义不同的数据类型
Python中的数据类型(常见)
- 数字(number)
- 整型(int)
- 浮点型(float)
- 布尔型(bool)
- 复数(complex)
- 字符串(string)
- 列表(list)
- 元组(tuple)
- 字典(dict)
- 集合(set)
2.6 变量和常量
变量
概念:
- 程序可操作的存储区的名称;
- 程序运行时存储区中能够改变的数据;
每个变量都有自己的特定的数据类型
作用:
- 将数据存储到内存
变量的定义
- 命名
规则:
- 必须是字母、下划线、数字组合
- 不能以数字开头
- 不可以是Python中的关键字
注意:
- 见名知意
- 区分大小写
- 在Python中,单下划线和双下划綫开头的变量有特殊的通途,一般不推荐使用单下划线和双下划綫开头的变量名称
变量定义
val_name = 初始值
拓展:
关键字的查看
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', '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']
一下变量名称哪些是正确的,哪些是错误的?
666,错
City666,对
_56city,对
类型测试 type()
type(val_name)
内存地址 id()
id(val_name)
常量
常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量。
通常用大写,如
PI = 3.1415926
举例:
>>> a = 1
>>> b = 6.6
>>> c = "xyz"
>>> tp = 1, 2, 3
>>> x, y, z = tp
>>> x
1
>>> y
2
>>> z
3
>>> type(tp)
<class 'tuple'>
>>>
>>>
>>> a, b, c = 111, 222, 33
>>> a
111
>>> b
222
>>> c
33
>>> a = 111
>>> b = 222
>>> c = 333
>>> x = "abc"
>>> y = "def"
>>>
>>> z = x, y
>>> type(z)
<class 'tuple'>
>>>
互换两元素的值:
>>> a = 123
>>> b = 456
>>> tmp = a
>>> a = b
>>> b = tmp
>>>
>>> a
456
>>> b
123
>>>
>>> x = 123
>>> y = 456
>>> x, y = y, x
>>> x
456
>>> y
123
2.7 数字
种类
整型(int)
- 32bit,取值范围 \(-2^{31} - 2^{31}-1\)
- 64bit,取值范围\(-2^{63} - 2^{63}-1\)
以前Python区分短整型和长整型,目前,无这些区分。
浮点型(float)
- 带有小数点的数字
布尔型(bool)
- True
- False
复数(complex)
- 实部 (cpx.real)
- 虚部 (cpx.imag)
- 共轭复数 (cpx.conjugate())
常见的数学函数
函数名 | 描述 |
---|---|
abs(x) | 绝对值 |
pow(x, y) | \(x^y\) |
round(x, [n]) | 返回四舍五入的值,如果给出n,表明四舍五入后的小数点的位数 |
math.exp(x) | 返回e的x次幂 |
math.fabs(x) | 返回绝对值,类型为浮点数 |
math.ceil(x) | 返回数字的上入整数 |
math.floor(x) | 返回数字的下舍整数 |
math.log(x, [y]) | 单参数,默认以e为底;双参数,以[y]为底 |
math.modf(x) | 返回浮点数的小数部分和整数部分 |
math.sqrt(x) | 平方根 |
\(max(x_1, x_2, ...)\) | 返回最大值 |
\(min(x_1, x_2, ...)\) | 返回最小值 |
2.8 表达式与运算符
表达式
- 由变量,常量和运算符组成的式子,成为表达式
运算符
- 算术运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
- 成员运算符
- 身份运算符
- 位运算符
Python算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 : 两个对象相加 | a + b |
- | 减 :得到负数或是一个数减去另一个数 | a - b |
* | 乘 : 两个数相乘或是返回一个被重复若干次的字符串 | a * b |
/ | 除 : x 除以 y | b / a |
** | 幂 : 返回x的y次幂 | a**b |
% | 取模 : 返回除法的余数 | b % a |
// | 取整除 : 向下取接近除数的整数 | a//b |
拓展:
divmod(x, y)>>> divmod(23, 4)
(5, 3)
a = 6
b = 12
c = 0
c = a + b
print ("1: c 的值为:", c)
c = a - b
print ("2: c 的值为:", c)
c = a * b
print ("3: c 的值为:", c)
c = a / b
print ("4: c 的值为:", c)
c = a % b
print ("5 - c 的值为:", c)
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b
print ("6 - c 的值为:", c)
a = 10
b = 5
c = a//b
print ("7 - c 的值为:", c)
Python比较运算符
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 True。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 True。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 True。 |
Python赋值运算符
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c**= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
Python位运算符
运算符 | 描述 |
---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 |
下表中变量 a 为 31,b 为 15二进制格式如下:
a = 0001 1111
b = 0000 1111
----------------
a&b = 0000 1111
a|b = 0001 1111
a^b = 0001 0000
~a = 1110 0000
a<<2 = 0111 1100
a>>2 = 0000 0111
>>> a = 31
>>> b = 15
>>> a & b
15
>>> a | b
31
>>> a ^ b
16
>>> ~a
-32
>>> a << 2
124
>>> a >> 2
7
Python逻辑运算符
Python语言支持逻辑运算符,
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 |
同样仍以变量 a 为 31,b 为 15为例:
>>> a and b
15
>>> a or b
31
>>> not a
False
针对逻辑运算的进一步研究:
1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。
判断逻辑语句的正与负:
3>4 or 4<3 and 1==1 #
1 < 2 and 3 < 4 or 1>2 #
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 #
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 #
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 > 8 #
1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6#
3>4 or 4<3 and 1==1 #F
1 < 2 and 3 < 4 or 1>2 #T
2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 #T
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 #F
1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 > 8 #T
1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 #F
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6#F
python成员运算符
测试是否包含某个成员,一般测试字符串,列表,元组
运算符 | 描述 |
---|---|
in | 如果存在于指定序列中,返回True;否则,False |
not in | 如果不存在于指定序列中,返回True;否则,False |
Demo:
>>> sr = "abc"
>>> "a" in sr
True
>>> "a" not in sr
False
>>> li = list(sr)
>>> li
['a', 'b', 'c']
>>> "a" in li
True
>>>
python身份运算符
用于比较两个对象的存储单元
id()函数用于获取对象内存地址。
运算符 | 描述 |
---|---|
is | 判断两个标识符是不是引用自同一个对象 |
not is | 判断两个标识符是不是引用自同一个对象 |
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
2.9 数据类型的强制转换
强转类型 | 描述 |
---|---|
int(x, [base]) | 将x强制转化为整型。如果x是字符串,需要制定base基数 |
float(x) | 将x转换为浮点型 |
str(x) | 强转为字符串 |
repr(x) | 将对象转换为表达式字符串 |
list(x) | 将对象转换为列表 |
tuple(x) | 将对象转换为元组 |
dict(x) | 将对象转换为字典 |
set(x) | 将对象转换为集合 |
chr(x) | 将整数转化为字符 |
ord(x) | 将字符转化为数值 |
bin(x) | 转换为二进制 |
oct(x) | 转换为八进制 |
hex(x) | 转换为十六进制 |
# int
>>> a = 12.3
>>> int(a)
12
>>> sr = "123"
>>> int(sr)
123
>>> int(sr, 8)
83
>>> 8**2 + 2 * 8 + 3
83
>>> int(sr, 16)
291
拓展
小数据池
- 数字小数据池的范围 -5 ~ 256
- 字符串中如果有特殊字符他们的内存地址就不一样
- 字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致
>>> a1 = -6
>>> a2 = -6
>>> a1 == a2
True
>>> a1 is a2
False
>>>
>>> b1 = -5
>>> b2 = -5
>>> b1 == b2
True
>>> b1 is b2
True
>>>
>>>
>>> s1 = 'demo#'
>>> s2 = 'demo#'
>>> s1 == s2
True
>>> s1 is s2
False
>>> >>> for i in [19, 20, 21]:
... a = 'a'*i
... b = 'a'*i
... print(a == b)
... print(a is b)
...
True
False
True
False
True
False
>>> s1 = 'aaaaaaaaaaaaaaaaaaaa'
>>> s2 = 'aaaaaaaaaaaaaaaaaaaa'
>>> s1 is s2
True
>>> s2 = 'aaaaaaaaaaaaaaaaaaaaa'
>>> s1 = 'aaaaaaaaaaaaaaaaaaaaa'
>>> s1 is s2
True
>>>
# 第三条待考证
2.10 随机函数
导入这个模块
import random
random模块的常见功能:
(1) random.random()
- 用来生成一个0-1的随机浮点数 [0, 1)
import random
# print(dir(random))
for i in range(100):
a = random.random()
print(a, end=" ")
(2) random.uniform(a, b)
- 用来生成指定范围内的浮点数,[a, b]
import random
# print(dir(random))
for i in range(100):
a = random.uniform(6, 8)
print(a, end=" ")
(3) random.randint(a, b)
- 用来生成指定范围内的整数,[a, b]
import random
# print(dir(random))
for i in range(100):
a = random.randint(6, 10)
print(a, end=" ")
(4) random.randrange([start], stop, [step])
- 从指定范围内,按指定基数递增或者递减的集合中,随机获取一个整数
random.randrange(1, 16, 2)
1, 3, 5, 7, 9, 11, 13, 15
import random
for i in range(100):
a = random.randrange(1, 16, 2)
print(a, end=" ")
(5) random.choice(sequence)
- 从序列中随机获取一个元素,sequence可以为列表,字符串或者元组
import random
for i in range(100):
# a = random.randrange(1, 16, 2)
b = random.choice(range(1, 16, 2))
print(b, end=" ")
(6) random.shuffle(x[, random])
- 用来将一个列表的元素打乱。即将列表的元素随机排列。
import random
li = ["C Language", "C++", "Java", "VB", "C#", "Python"]
# sr = "C Language"
for i in range(6):
# a = random.randrange(1, 16, 2)
random.shuffle(li)
print(li)
(7) random.sample(sequence, k)
- 用来从指定序列中随机获取指定长度的片段并随机排列。但,不会修改原来序列。
import random
li = ["C Language", "C++", "Java", "VB", "C#", "Python"]
for i in range(6):
print(random.sample(li, 4))
02_Python基础的更多相关文章
- 02_python基础(面向对象编程)
面向对象编程: 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance ...
- 【Python基础】02_Python中变量的输入输出
1.变量的输入: input函数: input() input("请输入银行卡密码") password = input("请输入银行卡密码") 变量名 = i ...
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- HTTPS 互联网世界的安全基础
近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
随机推荐
- JQuery ajax request及Java服务端乱码问题及设置
今天花了半天功夫才搞定2个乱码问题 1. 原先一直用form提交,现在改作JQuery ajax 提交,发现乱码. 2. window.location url中含有中文提交后,乱码. 第一个问题: ...
- Shell-匹配行及date日期转换
#将指定字符串转化为从1970年1月1日到现在的秒数. date -d '20170506' "+%s" #将1970年1月1日到现在累计的秒数转化为日期 date -d @149 ...
- maven 报错 Failed to execute goal on project ...: Could not resolve dependencies for project ...
昨天在研究 项目 遇到这样一个问题 可以看到 上面有三个 模块 jeecg-boot-base-common .jeecg-boot-module-system .jeecg-boot-modules ...
- java基础模拟考试三套试卷
卷1: 一.单选题(15道,共30分) //1.下列关于JDK.JRE.JVM关系描述正确的是 (A) A:JDK是开发工具,包含了JRE.JRE是运行环境,包含了JVM.JVM是虚拟机,可以保证跨平 ...
- HCIP --- BGP综合实验
实验要求: 实验拓扑: 一.配置IP地址 L:代表环回地址(loop back 0) Y:代表业务网段的地址(loop back 1) 二.因为BGP基于IGP之上,给AS 2内配置OSPF 在R2上 ...
- Json转换值类型字段为空字符串时报错问题
问题 在写Webservices时,碰到的问题. 定义的类 public class User { public string sID { get; set; } public int? iAge { ...
- 实用干货!Java开发企业级权限管理系统视频教程
全程手把手带你运用Java技术栈,打造一套基于最流行的RBAC拓展模型的,分布式的,有界面的,高灵活性,高拓展性的企业级权限管理系统.学完本课程你将可以轻松应对绝大多数企业开发中与权限管理及后台系统相 ...
- Pygame的简单总结
Pygame learn from mooc 私货:在调用函数时,可以 1.import tkinter (不过在使用时还要加前缀如tkinter.Tk()) 2.import tkinter as ...
- (java)五大常用算法
算法一:分治法 基本概念 1.把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题--直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并. 2.分治策略是对于一个 ...
- VC维相关知识
假设空间H(Hypothesis Set) 输入空间D(X1...Xn) 1.增长函数(grown function) 是关于输入空间尺寸n的函数 假设空间对于D中所有实例实现分类(赋予标记)的分类方 ...