[Python]非零基础的快速上手
从js转的python,没有从初学者阶段开始,主打一个快速上手能写再说.
pycharm:一种编辑器
数据类型
基本数据类型:整型(整数)、浮点型、字符型、布尔型
复杂数据类型:列表(数组)、集合区{1,2,3}、元组(1,3.4)字典{n’:2,'b:1}
模板字符串
输出模板字符串:print(f"hello{a}");记得前加f才能读取变量
“hello /t world” /t会被编译为长空格
“hello /n world” /n中间换行
让程序在运行时输入一个值给变量a = input();
加上文字提示即a = input("Plz input: ");
a=int(input('Plz input: '))
input()会等待用户输入结果
给值转换数字类型:a = int(“1”); //相当于js的Number();
用户输入完成后按下Enter会继续执行
强制转换一个值的类型:str()、float()、int()
随机数
取随机数:import random;
a = random.randint(1, 100); //取1-100间的一个整数;
a = random.uniform(1, 100); //取1-100间的一个小数; a = random.random(); //取0-1之间一个小数
逻辑关系
“与”:and,“或”:or",“非”: not
复制扩张字符串:
doubleH = “h” * 2; //“hh”
if判断结构:
if c > 0:print(True)
elif c == 0:print(0)
else:print(False)
不等于: !=
循环结构
while a < 10:print(a)if a == 5:break'''跳出最内层循环,后续也不执行),若是continue则跳出本轮循环.'''
(编者也提到他不常用while而会选择for)
for循环:
for a in arr0:for i in range(10):'''range(10)意为0-9的列表'''print(i)
'''以上for循环等同于: '''
for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
print(i);
字符串
遍历字符串:
for i in ‘ABCD’:
print(i).
字符串截取:
a = ‘my name is xxx’
c = a[1:5]
包括下标1的项,但不包括为5的项,即:y na
d=a[1;]//即y name is xxx,终止项没有,一直取到末尾
c=a[:5]//即:my na,起始项没有,默认从0开始.
e = a[1:3:1] //即:y n,步长1, 在范围内隔1项取一项
f = a[-4,-1]即s x从倒1下标截到倒4下标,不包括倒4下标项
字符串是不可变数字类型
str[0]='a’是不合法的.
替换字符串中某一项:
a = a.replace('xxx’, ’ replace") // my name replace.
提取字符串一段为列表:
arr = a.split(‘abcd’) // [“a”,“a”,“c”, “d”]
将列表拼合为字符串:
str = ‘-’.join(arr) //‘a-b-c-d’
字符串下标访问:
string[0]
列表
判断一个元素是否存于列中:
if 'ele' in arr:print(true)
if 'ele' not in arr:print(False)
在列表末尾添加一个元素:
arr.append(‘a’)
在列表任一位置添加一个元素:
arr.insert(2, ‘T’) //下标2元素前插入.
删除列表元素:
arr.pop(1) //删除下标为1的元素
删除列表元素:
arr.remove(‘ele’) //删除元素’ele’
清空列表:
arr.clear()
删除列表:
del arr
拷贝列表:
b = a.copy()//只适用于单层列表,参考js的concat()
列表元素排序:
arr.sort() // 没有返回值,修改原数组
a = sorted(arr) //有返回值, 不改原数组
#元组
元组内的元素不能被修改,但可以遍历:
a=(2,3,5)
for i in b:print(i)
for i in range(len(c)):
'''内置函数len取length'''print(c[i])
集合
s = {1,3,5}
集合具有不重复性,其自动却除内部的重复元素(只留一个)具有无序性,在逻辑上没顺序,没有第几第几这种概念.
字典
d = { 'name': 'a', 1: True, [1,2]: 5 }
'''内部是键值对,键值都是各种类型'''
d.keys()'''获取键列表'''
d.values()'''获取值列表'''
d.items()'''获取键值对列表'''
[(name, 'a), (1, True), ([1, 2], 5)]
'''遍历字典:'''
for k, v in d.items:print((k, v))'''查找:'''d['name"]
'''删除:'''del d["age"]
'''清空:'''d clear()
'''销毁:'''del d
函数
def:函数声明
def day():if a: print(1)
day()
def isDouble(n):
if isDouble(num): print(f'{num}偶数')
else:print(f'{num}非偶')def color(img: Image, x: int, y: int, color: tuple):
//类型注释
"拆包"赋值(解构赋值):
def gc:return 1, 2
print(g())
得元组(1,2),解构赋值:a, b = g(),字典,集合,元组列表都可以拆包.
不定长参数:
def ar(n, *args):print(n)
ar(1,2,3,4)
字符串方法:
str.upper() '''全转大写返回'''
str.lower() '''全转小写返回'''
str.find('') '''查找字符, 返回下标,如果找一段字符,返回首字符下标'''
str.replace("") '''替换字符, 参数(旧, 新)'''
'''检查存在性,返布尔运算符:'''
'xx' in str
'''算数优先级遵缩先乘除后加减:'''
18+3*2**2 == 22
数学函数:
import math
math.round() '''圆弧函数'''
math.abs() '''绝对值'''
math.ceil() '''向上取整'''
math.floor() '''向下取整'''
全局作用域
一个变量属于全局作用域,那么使用时要在前面加global表示要使用全局的变量.比如全局和局部各有变量a,那么要在局部访问全局a,当访问global a
附上我的第一段python程序:
import randomdef getRandom():global targettarget = random.randint(1, 10)print(target)def checkRes():res = int(input("Guess: "))if res > target:print("大了")checkRes()elif res < target:print("小了")checkRes()else:print("对了")
getRandom()
checkRes()