Explain how to create a multidimensional list.

There are two ways in which Multidimensional list can be created:
  • By direct initializing the list as shown below to create multidimlist below

>>>multidimlist = [ [227, 122, 223],[222, 321, 192],[21, 122, 444]]
>>>print multidimlist[0]
>>>print multidimlist[1][2]
__________________________
Output
[227, 122, 223]
192
  • The second approach is to create a list of the desired length first and then fill in each element with a newly created lists demonstrated below :

>>>list=[0]*3
>>>for i in range(3):
>>> list[i]=[0]*2
>>>for i in range (3):
>>> for j in range(2):
>>> list[i][j] = i+j
>>>print list
__________________________
Output
[[0, 1], [1, 2], [2, 3]]

What is a negative index in python?

  • Python arrays & list items can be accessed with positive or negative numbers (also known as index).

     For instance our array/list is of size n, then for positive index 0 is the first index, 1 second, last index will be n-1. For negative index, -n is the first index, -(n-1) second, last negative index will be – 1. A negative index accesses elements from the end of the list counting backwards.

An example to show negative index in python.

>>> import array
>>> a= [1, 2, 3]
>>> print a[-3]
1
>>> print a[-2]
2
>>> print a[-1]
3

Explain the role of repr function.

  • Python can convert any value to a string by making use of two functions repr() or str(). 
  • The str() function returns representations of values which are human-readable
  • while repr() generates representations which can be read by the interpreter.
  • repr() returns a machine-readable representation of values, suitable for an exec command. 
  • Following code sniipets shows working of repr() & str() :
def fun():
   y=2333.3
   x=str(y)
   z=repr(y)
   print " y :",y
   print "str(y) :",x
   print "repr(y):",z

>>fun()
-------------
output
y : 2333.3
str(y) : 2333.3
repr(y) : 2333.3000000000002

Explain indexing and slicing operation in sequences

  • Different types of sequences in python are strings, Unicode strings, lists, tuples, buffers, and xrange objects. 
  • Slicing & indexing operations are salient features of sequence. 
  • indexing operation allows to access a particular item in the sequence directly ( similar to the array/list indexing) and the slicing operation allows to retrieve a part of the sequence. 
  • The slicing operation is used by specifying the name of the sequence followed by an optional pair of numbers separated by a colon within square brackets say S[startno.:stopno]. 
  • The startno in the slicing operation indicates the position from where the slice starts and the stopno indicates where the slice will stop at. 
  • If the startno is ommited, Python will start at the beginning of the sequence. 
  • If the stopno is ommited, Python will stop at the end of the sequence..
Following code will further explain indexing & slicing operation:


>>> cosmeticList =[‘lipsstick’,’facepowder’,eyeliner’,’blusher’,kajal’]
>>> print “Slicing operation :”,cosmeticList[2:]
Slicing operation :[‘eyeliner’,’blusher’,kajal’]
>>>print “Indexing operation :”,cosmeticList[0]
“Indexing operation :lipsstick

How is memory managed in python?


  • Memory management in Python involves a private heap containing all Python objects and data structures.
  • Interpreter takes care of Python heap and that the programmer has no access to it.
  • The allocation of heap space for Python objects is done by Python memory manager.
  • The core API of Python provides some tools for the programmer to code reliable and more robust program.
  • Python also has a build-in garbage collector which recycles all the unused memory.
  • When an object is no longer referenced by the program, the heap space it occupies can be freed.
  • The garbage collector determines objects which are no longer referenced by the program frees the occupied memory and make it available to the heap space.
  • The gc module defines functions to enable /disable garbage collector:
gc.enable() -Enables automatic garbage collection.
gc.disable() - Disables automatic garbage collection.

Explain how python is interpreted.

  • Python program runs directly from the source code.
  • Each type Python programs are executed code is required.
  • Python converts source code written by the programmer into intermediate language which is again translated it into the native language / machine language that is executed.
  • So Python is an Interpreted language.

Explain pickling and unpickling.

  • Pickle is a standard module which serializes & de-serializes a python object structure.
  • Pickle module accepts any python object converts it into a string representation & dumps it into a file(by using dump() function) which can be used later, process is called pickling.
  • Whereas unpickling is process of retrieving original python object from the stored string representation for use.

How can we pass optional or keyword parameters from one function to another in Python?


Gather the arguments using the * and ** specifiers in the function’s parameter list. 

This gives us positional arguments as a tuple and the keyword arguments as a dictionary. 

Then we can pass these arguments while calling another function by using * and **:


def fun1(a, *tup, **keywordArg):
...
keywordArg['width']='23.3c'
...


Fun2(a, *tup, **keywordArg)

How do we share global variables across modules in Python?

We can create a config file & store the entire global variable to be shared across modules or script in it. By simply importing config, the entire global variable defined it will be available for use in other modules.

For example I want a, b & c to share between modules.

config.py :
a=0
b=0
c=0

module1.py:
import config
config.a = 1
config.b =2
config.c=3
print “ a, b & resp. are : “ , config.a, config.b, config.c
------------------------------------------------------------------------
output of module1.py will be
1 2 3

Define class?

  • Class is a specific object type created when class statement is executed.
  • To create instances objects, class objects can be used as templates which represent both code and data specific to datatype.
  • In general, a class is based on one or many classes known as base classes.
  • It inherits methods and attributes of base classes.
  • An object model is now permitted to redefine successively using inheritance.
  • Basic accessor methods are provided by generic Mailbox for subclasses and mailbox like MaildirMailbox, MboxMailbox, OutlookMailbox which handle many specific formats of mailbox.

How to find methods or attributes of an object?


  • Built-in dir() function of Python ,on an instance shows the instance variables as well as the methods and class attributes defined by the instance’s class and all its base classes alphabetically.
  • So by any object as argument to dir() we can find all the methods & attributes of the object’s class.


Following code snippet shows dir() at work :


class Employee:
def __init__(self,name,empCode,pay):
self.name=name
self.empCode=empCode
self.pay=pay
print("dir() listing all the Methods & attributes of class Employee")
print dir(e)
-----------------------------------------------------
Output
dir() listing all the Methods & attributes of class Employee
[ '__init__', 'empCode', 'name', 'pay']

Rules for local and global variables in python?

  • In python, the variables referenced inside a function are global.
  • When a variable is assigned new value anywhere in the body of a function then it is assumed as local.
  • In a function, if a variable ever assigned new value then the variable is implicitly local and explicitly it should be declared as global.
  • If all global references require global then you will be using global at anytime.
  • You’d declare as global each reference to built-in function or to component of module which is imported.
  • The usefulness of global declaration in identifying side-effects is defeated by this clutter.

Define self?


  • 'self' is a conventional name of method’s first argument.
  • A method which is defined as method(self, x ,y ,z) is called as a.method(x, y, z) for an instance of a class in which definition occurs and  is called as method(a, x ,y, z).

Define python?

  • Python is simple and easy to learn language compared to other programming languages.
  • Python was introduced to the world in the year 1991 by Guido van Rossum.
  • It is a dynamic object oriented language used for developing software.
  • It supports various programming languages and have a massive library support for many other languages.
  • It is a modern powerful interpreted language with objects, modules, threads, exceptions, and automatic memory managements.
  • Salient features of Python are
    • Simple & Easy: Python is simple language & easy to learn.
    • Free/open source: it means everybody can use python without purchasing license.
    • High level language: when coding in Python one need not worry about low-level details.
    • Portable: Python codes are Machine & platform independent.
    • Extensible: Python program supports usage of C/ C++ codes.
    • Embedded Language: Python code can be embedded within C/C++ codes & can be used a scripting language.
    • Standard Library: Python standard library contains pre written tools for programming.
    • Build-in Data Structure: contains lots of data structure like lists, numbers & dictionaries.

Python reverse sublist of multi dimensional list

>>> outerlist = [[1, 2], [3, 4], [5, 6]]
>>> [sublist[::-1] for sublist in outerlist]
[[2, 1], [4, 3], [6, 5]]

Indexing in database

Why is it needed?
When data is stored on disk based storage devices, it is stored as blocks of data. These blocks are accessed in their entirety, making them the atomic disk access operation. Disk blocks are structured in much the same way as linked lists; both contain a section for data, a pointer to the location of the next node (or block), and both need not be stored contiguously.
Due to the fact that a number of records can only be sorted on one field, we can state that searching on a field that isn’t sorted requires a Linear Search which requires N/2 block accesses (on average), where N is the number of blocks that the table spans. If that field is a non-key field (i.e. doesn’t contain unique entries) then the entire table space must be searched at N block accesses.
Whereas with a sorted field, a Binary Search may be used, this has log2 N block accesses. Also since the data is sorted given a non-key field, the rest of the table doesn’t need to be searched for duplicate values, once a higher value is found. Thus the performance increase is substantial.
What is indexing?
Indexing is a way of sorting a number of records on multiple fields. Creating an index on a field in a table creates another data structure which holds the field value, and pointer to the record it relates to. This index structure is then sorted, allowing Binary Searches to be performed on it.
The downside to indexing is that these indexes require additional space on the disk, since the indexes are stored together in a table using the MyISAM engine, this file can quickly reach the size limits of the underlying file system if many fields within the same table are indexed.
How does it work?
Firstly, let’s outline a sample database table schema;
Field name       Data type      Size on disk
id (Primary key) Unsigned INT   4 bytes
firstName        Char(50)       50 bytes
lastName         Char(50)       50 bytes
emailAddress     Char(100)      100 bytes
Note: char was used in place of varchar to allow for an accurate size on disk value. This sample database contains five million rows, and is unindexed. The performance of several queries will now be analyzed. These are a query using the id (a sorted key field) and one using the firstName (a non-key unsorted field).
Example 1
Given our sample database of r = 5,000,000 records of a fixed size giving a record length of R = 204 bytes and they are stored in a table using the MyISAM engine which is using the default block size B = 1,024 bytes. The blocking factor of the table would be bfr = (B/R) = 1024/204 = 5 records per disk block. The total number of blocks required to hold the table is N = (r/bfr) = 5000000/5 = 1,000,000 blocks.
A linear search on the id field would require an average of N/2 = 500,000 block accesses to find a value given that the id field is a key field. But since the id field is also sorted a binary search can be conducted requiring an average of log2 1000000 = 19.93 = 20 block accesses. Instantly we can see this is a drastic improvement.
Now the firstName field is neither sorted nor a key field, so a binary search is impossible, nor are the values unique, and thus the table will require searching to the end for an exact N = 1,000,000 block accesses. It is this situation that indexing aims to correct.
Given that an index record contains only the indexed field and a pointer to the original record, it stands to reason that it will be smaller than the multi-field record that it points to. So the index itself requires fewer disk blocks than the original table, which therefore requires fewer block accesses to iterate through. The schema for an index on the firstName field is outlined below;
Field name       Data type      Size on disk
firstName        Char(50)       50 bytes
(record pointer) Special        4 bytes
Note: Pointers in MySQL are 2, 3, 4 or 5 bytes in length depending on the size of the table.
Example 2
Given our sample database of r = 5,000,000 records with an index record length of R = 54 bytes and using the default block size B = 1,024 bytes. The blocking factor of the index would be bfr = (B/R) = 1024/54 = 18 records per disk block. The total number of blocks required to hold the table is N = (r/bfr) = 5000000/18 = 277,778 blocks.
Now a search using the firstName field can utilise the index to increase performance. This allows for a binary search of the index with an average of log2 277778 = 18.08 = 19 block accesses. To find the address of the actual record, which requires a further block access to read, bringing the total to 19 + 1 = 20 block accesses, a far cry from the 277,778 block accesses required by the non-indexed table.
When should it be used?
Given that creating an index requires additional disk space (277,778 blocks extra from the above example), and that too many indexes can cause issues arising from the file systems size limits, careful thought must be used to select the correct fields to index.
Since indexes are only used to speed up the searching for a matching field within the records, it stands to reason that indexing fields used only for output would be simply a waste of disk space and processing time when doing an insert or delete operation, and thus should be avoided. Also given the nature of a binary search, the cardinality or uniqueness of the data is important. Indexing on a field with a cardinality of 2 would split the data in half, whereas a cardinality of 1,000 would return approximately 1,000 records. With such a low cardinality the effectiveness is reduced to a linear sort, and the query optimizer will avoid using the index if the cardinality is less than 30% of the record number, effectively making the index a waste of space.

MYISAM VS. INNODB

MYISAM:
  1. MYISAM supports Table-level Locking
  2. MyISAM designed for need of speed
  3. MyISAM does not support foreign keys hence we call MySQL with MYISAM is DBMS
  4. MyISAM stores its tables, data and indexes in diskspace using separate three different files. (tablename.FRM, tablename.MYD, tablename.MYI)
  5. MYISAM not supports transaction. You cannot commit and rollback with MYISAM. Once you issue a command it’s done.
  6. MYISAM supports fulltext search
  7. You can use MyISAM, if the table is more static with lots of select and less update and delete.
INNODB:
  1. InnoDB supports Row-level Locking
  2. InnoDB designed for maximum performance when processing high volume of data
  3. InnoDB support foreign keys hence we call MySQL with InnoDB is RDBMS
  4. InnoDB stores its tables and indexes in a tablespace
  5. InnoDB supports transaction. You can commit and rollback with InnoDB

find the max salary in employee table ???/

select max(salary) from salary where salary < (select max(salary) from salary);

finding one string in other string in python

>>> str1 = "deepak"
>>> str2 = "hai, my name is deepak"
>>> if str1 in str2
SyntaxError: invalid syntax
>>> if str1 in str2:
    print "yes"

   
yes
>>>

regular expresion to find first 10 alphabet in the string



\b[a-zA-Z0-9]{3}\b"
3 char words only "iokldöajf asd alkjwnkmd asd kja wwda da aij ednm <.jkakla "
 

left join and left outerjoin

At the top level there are mainly 3 types of joins:

  1. INNER
  2. OUTER
  3. CROSS

  1. INNER JOIN - fetches data if present in both the tables.
  2. OUTER JOIN are of 3 types:
    1. LEFT OUTER JOIN - fetches data if present in the left table.
    2. RIGHT OUTER JOIN - fetches data if present in the right table.
    3. FULL OUTER JOIN - fetches data if present in either of the two tables.
  3. CROSS JOIN, as the name suggests, does [n X m] that joins everything to everything.
    Similar to scenario where we simply lists the tables for joining (in the FROM clause of the SELECT statement), using commas to separate them.

setup virtual environment in windows

pip install virtualenv


C:\cap_work>cd env

C:\cap_work\env>cd Scripts

C:\cap_work\env\Scripts>activate

(env) C:\cap_work\env\Scripts>

how to install rabbitmq

first install

opt_win64_19.1



next install

rabbitmq-server-3.6.6

pip install in windows

install get-pip.py from internet and 

run get-pip.py

set the environment variable



C:\Python27\Scripts

keep this in environment variable setting file

flask sample project

(env) c:\cap_work\svn_repowc\work>cd helloworld

(env) c:\cap_work\svn_repowc\work\helloworld>dir
 Volume in drive C has no label.
 Volume Serial Number is D82E-817D

 Directory of c:\cap_work\svn_repowc\work\helloworld

01-12-2016  11:40    <DIR>          .
01-12-2016  11:40    <DIR>          ..
01-12-2016  11:40               153 hello.py
               1 File(s)            153 bytes
               2 Dir(s)  71,678,545,920 bytes free

(env) c:\cap_work\svn_repowc\work\helloworld>python hello.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
                                                             127.0.0.1 - - [01/Dec/2016 11:42:52] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [01/Dec/2016 11:42:52] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [01/Dec/2016 11:42:52] "GET /favicon.ico HTTP/1.1" 404 -








==================
hello.py
==================
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "hellow world!"

if __name__ == "__main__":
   app.run()




and save as hello.py








flask install with pip in windows

(env) C:\cap_work\env\Scripts>pip install flask
Collecting flask
  Downloading Flask-0.11.1-py2.py3-none-any.whl (80kB)
    100% |################################| 81kB 499kB/s
Collecting click>=2.0 (from flask)
  Downloading click-6.6-py2.py3-none-any.whl (71kB)
    100% |################################| 71kB 884kB/s
Collecting Werkzeug>=0.7 (from flask)
  Downloading Werkzeug-0.11.11-py2.py3-none-any.whl (306kB)
    100% |################################| 307kB 687kB/s
Collecting Jinja2>=2.4 (from flask)
  Downloading Jinja2-2.8-py2.py3-none-any.whl (263kB)
    100% |################################| 266kB 359kB/s
Collecting itsdangerous>=0.21 (from flask)
  Downloading itsdangerous-0.24.tar.gz (46kB)
    100% |################################| 51kB 1.1MB/s
Collecting MarkupSafe (from Jinja2>=2.4->flask)
  Downloading MarkupSafe-0.23.tar.gz
Building wheels for collected packages: itsdangerous, MarkupSafe
  Running setup.py bdist_wheel for itsdangerous ... done
  Stored in directory: C:\Users\Deepak\AppData\Local\pip\Cache\wheels\fc\a8\66\24d655233c757e178d45dea2de22a04c6d92766abfb741129a
  Running setup.py bdist_wheel for MarkupSafe ... done
  Stored in directory: C:\Users\Deepak\AppData\Local\pip\Cache\wheels\a3\fa\dc\0198eed9ad95489b8a4f45d14dd5d2aee3f8984e46862c5748
Successfully built itsdangerous MarkupSafe
Installing collected packages: click, Werkzeug, MarkupSafe, Jinja2, itsdangerous, flask
Successfully installed Jinja2-2.8 MarkupSafe-0.23 Werkzeug-0.11.11 click-6.6 flask-0.11.1 itsdangerous-0.24

when pip install celery, the dependency file(auto install)

C:\Users\Deepak>pip freeze
amqp==2.1.1
billiard==3.5.0.2
celery==4.0.0
kombu==4.0.0
pytz==2016.7
vine==1.1.3

celery install using pip

C:\Users\Deepak>pip install Celery
Collecting Celery
  Downloading celery-4.0.0-py2.py3-none-any.whl (395kB)
    100% |################################| 399kB 575kB/s
Collecting kombu<5.0,>=4.0 (from Celery)
  Downloading kombu-4.0.0-py2.py3-none-any.whl (178kB)
    100% |################################| 184kB 624kB/s
Collecting billiard<3.6.0,>=3.5.0.2 (from Celery)
  Downloading billiard-3.5.0.2-cp27-cp27m-win32.whl (124kB)
    100% |################################| 133kB 769kB/s
Collecting pytz>dev (from Celery)
  Downloading pytz-2016.7-py2.py3-none-any.whl (480kB)
    100% |################################| 481kB 544kB/s
Collecting amqp<3.0,>=2.1.1 (from kombu<5.0,>=4.0->Celery)
  Downloading amqp-2.1.1-py2.py3-none-any.whl (48kB)
    100% |################################| 51kB 581kB/s
Collecting vine>=1.1.3 (from amqp<3.0,>=2.1.1->kombu<5.0,>=4.0->Celery)
  Downloading vine-1.1.3-py2.py3-none-any.whl
Installing collected packages: vine, amqp, kombu, billiard, pytz, Celery
Successfully installed Celery-4.0.0 amqp-2.1.1 billiard-3.5.0.2 kombu-4.0.0 pytz-2016.7 vine-1.1.3

working with mysql and python

(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\Deepak>python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
>>> db = MySQLdb.connect(host = "localhost", user="root" passwd="root" db="world")
  File "<stdin>", line 1
    db = MySQLdb.connect(host = "localhost", user="root" passwd="root" db="world")
                                                              ^
SyntaxError: invalid syntax
>>> db = MySQLdb.connect(host = "localhost", user="root", passwd="root", db="world")
>>> cur = db.cursor()
>>> cur.execute("select count(*) from city")
1L
>>> for row in cur.fetchall():
...    print  row[0]
...
4079
>>> db.close()
>>>



cassandra help with query

> How to show the databases in cassandra

DESCRIBE keyspaces;

> how to show tables
Its as simple as these 2 steps

1. use <keyspace_name>;

2. describe tables;

cassandra and python cql error

>>> import cql

Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    import cql
ImportError: No module named cql
>>>



solution is

pip install cqlsh

Find object by id in an array of JavaScript objects

Question:
---------

I've got an array:
myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]
I'm unable to change the structure of the array. I'm being passed an id of 45, and I want to get 'bar' for that object in the array.



Solution:

myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}];

var found = $.map(myArray, function(val) {
    return val.id == '45' ? val.foo : null;
});

alert(found.length + "\n" + found[0]);

How do you skip a unit test in Django?

Python's unittest module has a few decorators:
There is plain old @skip:
from unittest import skip

@skip("Don't want to test")
def test_something():
    ...
If you can't use @skip for some reason, @skipIf should work. Just trick it to always skip with the argument True:
@skipIf(True, "I don't want to run this test yet")
def test_something():
    ...

How do I import the Django DoesNotExist exception?

self.assertRaises(Chip.DoesNotExist, Chip.objects.get, id=0)

In unit testing how to mock object.DoesNotExist exception in django , python


Code :

=====



@require_http_methods(['POST', 'PUT'])
def set_session_chip(request, chip_id):
    try:
        chip = Chip.objects.get(id=chip_id)
        set_latest_chip(request, chip_id)
        chip_name = chip.name
    except Chip.DoesNotExist as e:
        chip_name = None


    return http_response_json({'chip_id': chip_id, 'chip_name': chip_name})




UNIT Testing:

 ==================





class TestSendSetSessionChip(unittest.TestCase):
    def setUp(self):
        # Mock prepare
        self.request = Mock()
        self.request.method = 'POST'

    @patch('model.views.http_response_json')
    @patch('model.views.set_latest_chip')
    @patch('model.views.Chip')
    def test_set_session_chip_valid_chip_id(self, chip, set_latest_chip, http_response_json):
        # Mock Prepare
        chip_id = 79
        chip_mock = Mock()
        chip_mock.name = 'QAD682 (Horus)'

        # return value
        chip.objects.get.return_value = chip_mock

        # Function Call
        set_latest_chip(self.request, chip_id)

        # Expected response
        data = {'chip_id': 79, 'chip_name': 'QAD682 (Horus)'}

        # function call
        set_session_chip(self.request, chip_id)

        # assertion
        http_response_json.assert_called_with(data)

    @patch('model.views.http_response_json')
    def test_set_session_chip_invalid_chip_id(self, http_response_json):

        # Mock Prepare
        chip_id = 0

        # return value
        self.assertRaises(Chip.DoesNotExist, Chip.objects.get, id=0)

        # Expected response
        data = {'chip_id': 0, 'chip_name': None}

        # function call
        set_session_chip(self.request, chip_id)

        # assertion
        http_response_json.assert_called_with(data)

    def tearDown(self):
        pass







==============



PyCharm 2016.1 Help Running and Debugging

Running and Debugging

FunctionShortcutUse this shortcut to...
RunShift+F10Run a program.
Choose configuration and runShift+Alt+F10Quickly select run/debug configuration and run or edit it.
RerunCtrl+F5Repeat execution with the same settings, with the same tab of the Run tool window having the focus.
Rerun without loosing the focus in the editorShift+F10Repeat execution with the same settings, with the same tab of the editor having the focus.
DebugShift+F9 Debug a program.
Choose configuration and debugShift+Alt+F9Quickly select run/debug configuration and debug or edit it.
Step OverF8Step to the next line in the current file. See Stepping Through the Program.
Step IntoF7Step to the next executed line. See Stepping Through the Program.
Smart Step IntoShift+F7Select the method to step in, if the current line contains multiple method call expressions. See Choosing a Method to Step Into.
Step OutShift+F8Step to a first executed line after returning from the current method. See Stepping Through the Program.
Force Step OverShift+Alt+F8Run until the next line in this method or file, skipping the methods referenced at the current execution point and ignoring breakpoints. See Stepping Through the Program.
Force Step IntoShift+Alt+F7Steps into the method called in the current execution point even if this method is to be skipped. See Stepping Through the Program.
Run to CursorAlt+F9Run to the line where the caret is located. See Stepping Through the Program.
Force Run To CursorCtrl+Alt+F9Run to the line where the caret is located, ignoring breakpoints. See Stepping Through the Program.
Resume ProgramF9Resume program execution.
Stop ProgramShift+F2Terminate a debugging session.
Evaluate ExpressionAlt+F8Evaluate an arbitrary expression.
Quick Evaluate ExpressionCtrl+Alt+F8Evaluate an arbitrary expression without calling Evaluate Expression dialog.
Toggle BreakpointCtrl+F8Toggle breakpoint at the current line.
View BreakpointsCtrl+Shift+F8View/manage all breakpoints.